[UNIX] Postfixのvirtual_mailbox_domainsのはまった所
ちょっとPostfixの設定で詰まってた場所があったのでメモ
Postfixのmain.cfにあるvirtual_mailbox_domainsを設定する時の事なんですが
PostgreSQL使ったのですよ
virtual_mailbox_domains = pgsql:/etc/postfix/pgsql_mailbox_domains.cf
こんな感じで。でpgsql_mailbox_domains.cfの中味が
hosts = localhost
user = username
password = password
dbname = databaneName
query = SELECT address FROM tableName WHERE address = ‘%d’
概ねこんな感じで試してたんですが
ここのaddress = %のエクステンションの所だけど%dだと動かないんですね・・・
エクステンションは他に%sと%uがあるわけで入力されたキーを見るのだけど
%sは hoge@address.com の全文一致
%uは 上記アドレスのhogeの一致
%dは 上記アドレスのaddress.comの一致
で、man 5 virtualで見てみると
%sはまぁそのままなのだけど、
%uの場合はhogeにあたる部分が取り出せないと全文(hoge@address.com)で一致するか調べる
%dの場合はaddress.comにあたる部分だけ取り出せない場合に何も返さない
といった仕様があるそうです、で本題だけど
virtual_mailbox_domainsの中でキーを%エクステンションで調べるときに
自動的にドメイン部分のみ、という事は勝手にaddress.comに変換される仕様らしい
なので%dだとno resultが帰ってくるので当然エラーになる
%uの場合は自動的に全文一致になるので問題はない
%sの場合はそのままですね。きちんと一致します。
こんな不具合でした・・・結局理由は調べてもでてこなかったんで
ソースを見るしかないのかなぁ・・・こまかい理由を知ってる人がいたら押してください><
Posted in Web小技, ホームページ作成 | No Comments »






