Postfixのsender_canonical_mapsでヘッダを書きかえてくれない

sender_canonical_mapsを設定したけど、エンベロープ From は書き換わってもヘッダ From が書き換わらない!という場合がある。sender_canonical_classes にもちゃんと header_sender が含まれている(デフォルト)のに書き換わらない。

結論から言うと、local_header_rewrite_clients の設定を見直す必要がある。

デフォルトでは

local_header_rewrite_clients = permit_inet_interfaces

となっていて、サーバのローカルから送信されたメールのみ、ヘッダも書き換えるという動作をする。つまり、メールハブでいくらsender_canonical_maps を設定しても、他サーバから送信されたメールのヘッダ From は書き換えてくれないのだ。

自分が管理しているドメイン(組織内ローカルネットワーク)のどのクライアント・サーバから送られたメールでも From ヘッダを書き換え対象としたい場合、管理対象ドメインの IP アドレスを mynetworks に列挙した上で以下を設定する。

local_header_rewrite_clients = permit_mynetworks

難しく考えず、書き換え対象なら必ず書き換える!という場合は以下の設定を入れる。

local_header_rewrite_clients = static:all

この場合、書き換えテーブルにマッチすれば、インバウンドメールであろうと書き換えが入ることになるが、まあそれほど問題はないだろう。

参考: