web-dev-qa-db-ja.com

すべてのpostfixメールにメールアドレスから1つを持たせる方法

私はAmazonSESを使用しています。これはpostfixmaster.cfでは次のようになります。

aws-email  unix  -       n       n       -       -       pipe
  flags=R user=dhiller argv=/usr/bin/Perl -I/opt/Amazon/ses /opt/Amazon/ses/ses-
send-email.pl -r --verbose -k /opt/Amazon/ses/aws_credentials.conf -e https://em
ail.us-east-1.amazonaws.com -f [email protected] ${recipient}

[email protected]がfromアドレスを上書きすることを期待していましたが、コマンドライン送信を使用すると機能しますが、wordpressから送信する場合は機能しないようです。

上記のAmazonPerlスクリプトを呼び出す前に、受信したすべてのメールを差出人アドレスに変更するようにpostfixを設定して、差出人アドレスが正しいようにする方法を知っている人はいますか?

ありがとう、ディーン

4
Dean Hiller

解決策は、canonical(5)デーモンで実行されるアドレスcleanupsを記述するcleanup(8)マッピング機能を介することだと思います。

_   The optional canonical(5) table specifies an address mapping
   for local and non-local addresses. The mapping is used by the
   cleanup(8) daemon, before mail is stored into the queue.  The
   address mapping is recursive.
   ...
   Typically, one would use the canonical(5) table to replace
   login names by Firstname.Lastname, or to clean up addresses
   produced by legacy mail systems.
_

このアドレスクリーニングは、ローカル送信(_/usr/sbin/sendmail_)とリモート送信(SMTP経由)の両方に対して実行できます-WordpressがSMTP経由でメールを送信する場合。 Wordpressホスト名を_local_header_rewrite_clients_に追加する必要がある場合があります。

プレーンテキストテーブル(通常は_/etc/postfix/canonical_)をpostmap(1)コマンドに提供して、インデックス付きデータベースを構築します。 Wordpressの_From:_が常に同じである場合(たとえば、_[email protected]_)、エントリは次のようになります。

_[email protected] [email protected]
_

Wordpressの_From:_が変更されても、ドメインが常に同じである場合は、次を使用できます。

_@alvazan.com [email protected]
_

_From:_が実際にはほぼすべてであり、常に_[email protected]_ヘッダーに_From:_が必要な場合は、正規表現サポートを使用できます。私はこれについて少し不安ですが、それはオプションです:

_/./ [email protected]
_

_canonical_classes_変数を_envelope_sender, header_sender_に設定する必要があります。 (デフォルトでは、_envelope_recipient_と_header_recipient_も含まれています。そのままにしておいても問題はないかもしれませんが、(特にその貪欲な正規表現オプションでは)壊滅的である可能性があります。この特定のサーバーの使用方法によって異なります。 。)

深夜にテストし、すべての変更を行った後、システムに出入りするメールをテストすることをお勧めします。また、構成を何らかのソース管理下に置くことを忘れないでください。 (しかし、あなたはそれをすべて知っていました。)

5
sarnold