Ubuntu 16でPosfix EメールSMTPサーバーを設定しましたが、動作しています。以前は、ホスティング会社のSMTPサーバーを使用していましたが、独自のサーバーを使用することを好みました。
Java Mailを使用して電子メールを送信していますが、違いは、ホスティング会社を介して送信するときに受信者アドレスが間違っている場合は、次のメッセージが表示されることです。
com.sun.mail.smtp.SMTPAddressFailedException: 450 4.1.2: 受信者アドレスが拒否されました: ドメインが見つかりません
ただし、Postfixを使用して送信すると例外は発生しません。 Postfixログを確認しましたが、メッセージは次のとおりです。
処置:失敗ステータス:5.4.4診断コード:X-Postfixホストまたはドメインが見つかりません。ネームサービスエラー[Eメール保護]タイプ=AAAA: ホストが見つかりません。
ただし、これはJava例外に伝播されません。
同じ動作を示すようにPostfixを設定する方法を知っている人はいますか?
ありがとう、ヒューゴ
答え1
reject_unknown_recipient_domain
プーチンsmtpd_recipient_restrictions
今後 permit_mynetworks
、permit_sasl_authenticated
および/またはpermit_tls_clientcerts
。
reject_unknown_sender_domain
設定に欠落しているか以前permit_*
に存在するreject_unknown_sender_domain
場合、Postfixは許可ルールに一致するすべてのクライアント送信者が受信者ドメインを確認せずに電子メールを送信できるようにします。 Postfix は着信メールを受信してキューに入れ、メールを配信しようとするとドメインが存在しないことを確認し、メールを返送します。
最初に発生した場合は、reject_unknown_sender_domain
ルールが一致するかどうかにかかわらず、すべてのクライアントを確認し、permit_*
5xxコードで電子メールを拒否します。
サフィックスでは、ルールの順序は常に重要です。
例:
次の場合main.cf
:
smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/junk,
check_client_access hash:/etc/postfix/junk,
check_helo_access hash:/etc/postfix/junk,
reject_unauth_pipelining,
permit_tls_clientcerts,
permit_sasl_authenticated,
permit_mynetworks
reject_unknown_recipient_domain
行の前のどこかに追加してくださいpermit
。たとえば、次のようになります。
smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/junk,
check_client_access hash:/etc/postfix/junk,
check_helo_access hash:/etc/postfix/junk,
reject_unauth_pipelining,
reject_unknown_recipient_domain,
permit_tls_clientcerts,
permit_sasl_authenticated,
permit_mynetworks
smtpd_recipient_restrictions
まだルールがない場合は追加してください。たとえば、次のようになります。
smtpd_recipient_restrictions = reject_unauth_pipelining,
reject_unknown_recipient_domain,
permit_mynetworks
ただし、postfix設定についてさらに調査する必要があります。