Postfix:エンベロープ送信者ではなくFrom:メールヘッダーに基づいてリレーホストを選択する


9

SASLとsender_dependent_relayhost_mapsMySQLテーブルを使用してMandrill経由でメールをリレーするようにPostfixを設定しました。これにより、さまざまな送信者が独自のMandrillユーザー名とAPIキーを使用してMandrillに接続します。

これまでのところ良好ですが、3人のユーザーがすべてメールサービスプロバイダーを使用しており、メッセージエンベロープの送信者は3人のユーザーすべてに対して「mailer@infusionmail.com」に設定されており、実際のユーザーのメールを含む唯一の場所です。アドレスはFrom:メールヘッダーにあります。

厳重に管理されている特定のメールアドレスに送信されたメールのみを転送しているため、From:メールヘッダーを使用するセキュリティ(またはその欠如)に満足していますが、どうすればよいかについての提案に本当に感謝しますFrom:ヘッダーの値に基づいてrelayhostを指定するのが最適です。エンベロープ値をFromフィールドと同じに設定する方法はありますか?またはこれを行う他の方法は?


3人のユーザーが同じSASL資格情報を使用しましたか?
masegaloeh 2015

いいえ、SASL資格はそれぞれ異なります。メールクライアントから直接メールを送信する場合、メールリレーとSASL資格情報を送信アドレスに基づいて正しく識別します。infusionmail.com ESPを使用すると、送信者は同じで、差出人はFrom:メールヘッダーだけなので、この段階では送信者に基づいて同じ検索を実行することはできません。
Adrian Savage

回答:


5

postfixメーリングリストのこのスレッドに基づく:sendmail(1)によって導入されたすべてのメールの異なるトランスポートは、あなたのケースが可能だったようです。残念ながら、2つのテーブルsender_dependent_relayhost_mapsとだけに依存することはできませんsmtp_sasl_password_maps。変更する必要がありmaster.cfます。このアイデアは、header_checks電子メールを別のトランスポートにルーティングするために使用しています。次に、各トランスポートで、独立した資格情報とrelayhostを使用するsmtpクライアントを定義します。

まず、main.cfとそのpcreテーブルでheader_checksを定義します

#main.cf
header_checks = pcre:/etc/postfix/header_dependent_relay

#/etc/postfix/header_dependent_relay

/^From:.*specialsender1\@example\.com/       smtp1:[host1.example.com]
/^From:.*specialsender2\@example\.com/       smtp2:[host2.example.com]
/^From:.*specialsender3\@example\.com/       smtp3:[host3.example.com]

良い、今我々のセットアップsmtp1smtp2smtp3master.cfで輸送

#master.cf
smtp1    unix  -       -       -       -       10       smtp
    -o smtp_sasl_password_maps=hash:/etc/postfix/smtp1.relay
smtp2    unix  -       -       -       -       10       smtp
    -o smtp_sasl_password_maps=hash:/etc/postfix/smtp2.relay
smtp3    unix  -       -       -       -       10       smtp
    -o smtp_sasl_password_maps=hash:/etc/postfix/smtp3.relay

ファイルsmtpX.relayに類似したコンテンツがあります。

[hostX.example.com]   userX:passwordX

免責事項:


0

これは私にとって1つの変更で機能しました。アクション「FILTER」をheader_dependent_relayファイルに追加する必要があります。

#/etc/postfix/header_dependent_relay

/^From:.*specialsender1\@example\.com/       FILTER smtp1:[host1.example.com]
/^From:.*specialsender2\@example\.com/       FILTER smtp2:[host2.example.com]
/^From:.*specialsender3\@example\.com/       FILTER smtp3:[host3.example.com]

http://www.postfix.org/header_checks.5.htmlを参照してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.