5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Postfix(6)

16 :名無しさん@お腹いっぱい。:2006/09/23(土) 22:03:37
変な流れになっていますが、質問してもよいでしょうか?

alias_mapsのテーブルにPostgreSQLを使っているのですが、2.2.9から2.3.3へ移行したところ上手く動かなくなりました。
smtpd内のエイリアス処理がPostgreSQLのテーブルを引くところで失敗してしまい、Temporary lookup failureを吐いてメールが一切流れない状態になります。
ログにはwarning: dict_pgsql: cannot set the encoding to LATIN1, skipping localhost"と出ています。
調べてみるとサーバー側のデータベースのエンコーディングがLATIN1へ変更できないもの(この場合EUC_JP)だと動かないようです。

ソースとかpostfix-users MLとかを見ると、どうも問題を起こしている場所のコードはPostgreSQL側のSQLインジェクション対策を勘違いして入れた感じがしています。
http://archives.neohapsis.com/archives/postfix/2006-07/1530.html 参照)
ソースの該当箇所を削るとか、PostgreSQLのデータベースのエンコーディングをSQL_ASCIIに変えるとかの対策は思いつくのですが、どれも面倒な感じで途方に暮れています。
何か良い対策はないでしょうか?

設定ファイル
main.cf:
...
alias_maps = hash:/etc/mail/aliases pgsql:/usr/local/etc/postfix/pgsql-aliases.cf
...

pgsql-aliases.cf:
hosts = localhost
user = dbuser
password = passwd
dbname = database
query = SELECT mailaddress FROM userdb WHERE username = '%s' AND username IS NOT NULL AND mailaddress <> ''

PostgreSQLのテーブル(エンコーディングはEUC_JPを指定)
CREATE TABLE userdb (
 username TEXT,
 mailaddress TEXT
);

151 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)