warning: do not list domain localhost in BOTH mydestination and virtual_mailbox_domains

歌丸です。

virtual_mailbox_domains と mydestination の両方に"localhost"を記述していないのに、タイトルにある文字列がwaringとして出てたのでそれを潰した話。

設定ファイル

/etc/postfix/main.cf
virtual_mailbox_domains = mysql:/etc/postfix/virtual_domain.mysql
mydestination = localhost
/etc/postfix/virtual_domain.mysql
hosts = 127.0.0.1                                                                                                                                                                                                                                                                                                          
user = postfix
dbname = postfix
query = SELECT virtual_domains.name FROM virtual_domains;
# queryには全件返してる。

メールを受信したタイミングでコマンドを実行したいの図

外から受け取るメール => virtual mailbox へ配送
                                   => virtual_alias_maps => aliases => pipeからのコマンド実行

調べる

タイトルのログは、virtual_mailbox_domains のルックアップテーブル形式にmysqlを使っている時だけ吐いているっぽい。

virtual_mailbox_domains = jiikko.com, prpr-antena.com 

だと吐かない。


postfix mysqlのドキュメント読んだら、全件返すな自分自身返せ(意訳)と書いてた(´・_・`)
http://www.postfix.org/mysql_table.5.html

なので

/etc/postfix/virtual_domain.mysql
hosts = 127.0.0.1                                                                                                                                                                                                                                                                                                          
user = postfix
dbname = postfix
query = SELECT virtual_domains.name FROM virtual_domains where name = %d;

とすればOK。

英語厳しいしむちゃくちゃ眠い。六花の勇者がもしろい(原作買いました)。