Postfixでアドレスを書き換える為にはカノニカルアドレスマッピングという機能を使用。
参考 : Postfixアドレス書き換え
設定例をいくつかメモります。
おまじない的にやること
Postfix 2.2系の場合
特に無し。書き換えルールを設定ファイルに記述していけばOKみたい。
Postfix 2.3系の場合
local_header_rewrite_clients = static:allをmain.cfに書く。
2.3系ではデフォルトでは、
local_header_rewrite_clients = permit_inet_interfacesとなっているようで、$inet_interfacesにマッチしたクライアントIPアドレス以外からのメールに対して書き換えが行われないようです。
とりあえず、2.2系と同じ動作にするには、
local_header_rewrite_clients = static:allとしておけばいいみたい。
実際の設定例
main.cf# 書き換えるアドレスの対象
canonical_classes = envelope_sender, envelope_recipient, header_sender, header_recipient
# 送信者、受信者双方に適用
canonical_maps = regexp:/etc/postfix/canonical.regexp
# 送信者のみ書き換え対象
# sender_canonical_maps = regexp:/etc/postfix/sender_canonical.regexp
# 受信者のみ書き換え対象
# recipient_canonical_maps = regexp:/etc/postfix/recipient_canonical.regexp
とか書いて、
/etc/postfix/canonical.regexp
/^hogehoge/ fugafuga
とかしておくと、
エンベロープ送信者アドレス、エンベロープ受信者アドレス、
メッセージヘッダの送信者アドレス、メッセージヘッダの受信者アドレス、
マッチしたもの全てを書き換えます。
From: hogehoge@example.com
が、
From: fugafuga@example.com
こんな感じに書き変わるというわけです。
置換したい対象を制限する場合は、
canonical_classesの中身を指定すれば良いです。
メッセージヘッダーのToアドレスだけ書き換えたい場合は、
canonical_classes = header_recipientという感じ。
ちなみに、.forwardとかで呼びだされるプログラムには、もちろん書き換え済みのアドレスが入ります。
非常に便利!
0 件のコメント:
コメントを投稿