開発目的で、特定の SMTP アカウント経由で送信されるすべてのメールをこの同じアカウントに送信するメール サーバー (postfix) をセットアップしたいと考えています。
編集: メールは元のアドレスに送信されなくなります。
したがって、プロジェクトごとに異なるアカウントを作成し、1 つのプロジェクトのすべてのメールを 1 つのメールボックスに送ります。
現在、次のソリューションを使用しています:送信メールの受信者全員(1人を除く)を書き換える
しかし、SMTP AUTH アカウントに基づいて、これをさまざまな宛先アドレスに適応させるにはどうすればよいでしょうか?
答え1
次の 2 つのオプションがあります。
1. sender_bcc_maps
Postfix のオプションを使用します。
sender_bcc_maps (デフォルト: 空)
オプションの BCC (ブラインド カーボン コピー) アドレス検索テーブル。送信者アドレスでインデックス付けされます。Postfix の外部からメールが届いたときに、BCC アドレス (複数の結果はサポートされていません) が追加されます。
に以下を追加する必要があります/etc/postfix/my.cnf
:
sender_bcc_maps = hash:/etc/postfix/bcc_maps
そして、ファイルに/etc/postfix/bcc_maps
必要なマッピングを追加します。
[email protected] [email protected]
[email protected] [email protected]
次に以下を実行します:
postmap /etc/postfix/bcc_maps
そしてPostfixを再起動します。
- 送信者ベースのリダイレクト
main.cf の場合:
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access
sender_access ファイルでは次のようになります:
from_address@domain redirect new_to_address@anotherdomain.
その後postmap /etc/postfix/sender_access
、postfixを再起動します
答え2
これは答えではないSMTP認証に基づくただし、お客様のニーズに基づいたソリューションを提供します。
私はこれに正規マップを使用し、新しい VPS (centos/ubunbtu など) を設定してから、このボックスをスマートホストするように「開発」システムを設定しました (ネットワーク内、例: 192.168.0)。wp-smtp などを使用して同じ操作を行うこともできますが、私たちは interworx を使用したため、スマートホストが最もうまく機能しました。
[root@mx ~]# cat /etc/postfix/main.conf
recipient_canonical_classes = envelope_recipient
recipient_canonical_maps = regexp:/etc/postfix/recipient_canonical_map
mynetworks = 192.168.0.0/24
header_checks = regexp:/etc/postfix/header_checks
relayhost = mailserver.example.com
[root@mx ~]# cat /etc/postfix/header_check
/^Subject: (.*?)$/ REPLACE Subject: [Dev] $1
[root@mx ~]# cat /etc/postfix/recipient_canonical_map
/./ [email protected]
*regexp なので、ファイルをポストマップする必要はありません。
これは開発環境なので、個人的な経験から言うと、開発に対応するために本番環境を操作することはお勧めしませんが、これらのシステムを橋渡しするためにこのようなシステムを構築することをお勧めいたします。