PostfixがAmazon SESリレーを介してメールを送信する設定があります。メール転送以外はすべて正常に機能しています。
このトピックについては、少なくとも here および here についてはすでに議論されていますが、頭に入れられない点がまだいくつかあります。
問題は、Amazon SESがメールを送信しないことです。この場合、_From:
_は検証されません。したがって、内部アドレスが外部に転送する必要があり、送信者も外部である場合、メールは送信されません。
これを解決するために、現在main.cfで次の設定を使用しています
_header_checks = regexp:/etc/postfix/first_header_checks
smtp_header_checks = regexp:/etc/postfix/second_header_checks
sender_canonical_maps = regexp:/etc/postfix/sender_canonical
sender_canonical_classes = envelope_sender
smtpd_data_restrictions = check_sender_access pcre:/etc/postfix/sender_access
_
First_header_checksを使用
_/^From:(\s)?(.*)/i PREPEND X-Original-From: $2
/^To:(\s)?(.*)$/i PREPEND X-Original-To: $2
_
second_header_checks
_/^From:(.*)/i REPLACE From: <[email protected]>
_
sender_canonical
_/.*/ [email protected]
_
sender_access
_/(.*)/ prepend Reply-To: <$1>
_
これは受信メールに最適です。 [email protected]がメールを[email protected]に送信し、new @ another-external.comに転送されます
_Reply-To: <[email protected]>
X-Original-To: <[email protected]>
To: [email protected]
From: <[email protected]>
X-Original-From: <[email protected]>
_
問題は、これはサーバーからの送信メールでも発生します。たとえば、me @ verified-domain.comがメールを送信すると、送信元は返信なしに書き換えられ、返信先が設定されます。これを修正したい。メールヘッダーは、転送される受信メールに対してのみ書き換える必要があります。
私は!/^From:(\s)?(.*@verified-domain\.com)/
のような正規表現を使ってみましたが、今のところうまくいきません。
Postfix 2.1以降では、regex
およびpcre
テーブル内の条件演算子をサポートしています。あなたの場合second_header_checks
これらの条件文を使用すると、次のようになります。
if !/^From:(.*)@verified-domain.com/i
/^From:(.*)/i REPLACE From: <[email protected]>
endif
実際に次のようなものを送信せずに、ルックアップテーブルをテストできます。
peter@mail:~peter $ cat msgheaders
From: <[email protected]>
To: [email protected]
peter@mail:~peter $ postmap -hmq - regexp:/etc/postfix/second_header_checks < msgheaders
From: <[email protected]> REPLACE From: <[email protected]>
peter@mail:~peter $ cat msgheaders-1
From: <[email protected]>
To: [email protected]
peter@mail:~peter $ postmap -hmq - regexp:/etc/postfix/second_header_checks < msgheaders-1
peter@mail:~peter $
私はこれと非常に似た何かを別のメールサービスで実行しようとしていましたが、ここで私がそれを解決した方法です(このスレッドから多くの助けを得た後):
[email protected] smtp:localhost:9999
-o content_filter=smtp:[mx.somedomain.com]:25
-o smtpd_recipient_restrictions=permit_mynetworks,defer
(これは理想的でない可能性があります。ライブにプッシュする前に、dbl check security policy)よろしくお願いします。詳細が必要な場合は、私がお手伝いします。