web-dev-qa-db-ja.com

Postfixは、「送信者アドレスが拒否されました:完全修飾アドレスが必要です」と表示します。奇妙なアドレスのように見えるもののエラー

次のようなエラーメッセージが表示されます。

Jan 28 17:20:47 halk postfix/smtpd[29413]: NOQUEUE:
    reject: RCPT from mail.m2osw.com[138.197.205.139]:
    504 5.5.2 <SRS1=R3xB=m2osw.com==hj4N=ZL=Lime.ocn.ne.jp=@com>:
    Sender address rejected: need fully-qualified address;
    from=<SRS1=R3xB=m2osw.com==hj4N=ZL=Lime.ocn.ne.jp=@com>
    to=<[email protected]> proto=ESMTP helo=<m2osw.com>

山かっこで囲まれた「メール」アドレスを理解しているのかよくわかりません。

SRS1 = R3xB = m2osw.com == hj4N = ZL = Lime.ocn.ne.jp = @ com

それは私にはがらくたのように見えますが、多分それは封筒の形ですか?

元のFromは次のようになります。

From: western union <"westernunion1."@Lime.ocn.ne.jp>

(これは明確なスパムメールですが、非スパムでも発生します。)

私の知る限り、セットアップは以前は正常に機能していましたが、メールサーバーの1つを最新のpostfixにアップグレードしました(14.04ではなくUbuntu 16.04)。アーカイブサーバーはしばらく前にアップグレードされました。

このエラーは、Gmailから自分にメールを送信したときに発生します。その後、Gmailはバウンスを受け取ります。

セットアップは次のようなものです。

+------------------+    +------------------+
|                  |    |                  |
| Client           |--->| Main Server      |
|                  |    |                  |
+------------------+    +------------------+
                                |
                                v
                        +------------------+
                        |                  |
                        | Archive Server   |
                        |                  |
                        +------------------+

メインサーバーでは、電子メールは期待どおりに機能します。電子メールがアーカイブサーバーに到達すると、エラーが発生します。

あるpostfixMTAから別のpostfixMTAに転送するときに、そのような方法で電子メールアドレスを「壊す」変更があった可能性があるものはありますか?

1
Alexis Wilke

さて、私は犯人を見つけました。これらの「奇妙な」メールアドレスはSRSで始まります。これは、postfixpostsrsdを通じて使用できるSPIFサポートを示しています。 postsrsdデーモンの作成者があなたの postfix/main.cf ファイルで行うことを提案する4つのエントリがあります:

sender_canonical_maps = tcp:localhost:10001
sender_canonical_classes = envelope_sender
recipient_canonical_maps = tcp:localhost:10002
recipient_canonical_classes= envelope_recipient,header_recipient

明らかに、それは電子メールアドレスのエンベロープを生成します。そのエンベロープの仕様は次のとおりです。

[email protected]

私の場合の問題は、@の後のドメイン名が動的に生成されていたことでした。これは、完全なコンピューターのホスト名を取得し、名を削除することを意味しました。したがって、ホスト名としてm2osw.comを使用している場合、postsrsdはドメイン名としてcomを使用することになります。言い換えれば、私は次のような電子メールアドレスになってしまいます。

...@com

明らかに、@comは有効なドメイン名ではありません。

postsrsdデーモンは、ファイルにあるいくつかの定義を使用します。

/etc/default/postsrsd

そこにSRS_DOMAINという名前の変数があります。その変数を正しいドメイン名で設定することにより:

SRS_DOMAIN=m2osw.com

電子メールは期待どおりにエンベロープされ、エラーはなくなります。 (つまり、古い「メインサーバー」で適切にセットアップされていました。転送中にそれを見逃しました。)

1
Alexis Wilke

私はそうは思いません、あなたが共有したログはすべてがうまく見え、接尾辞がうまく機能していることを示しています。何が起こっているかについてさらに情報が必要な場合は、main.cfに以下を追加してください。

error_notice_recipient = [email protected]
delay_notice_recipient = $error_notice_recipient
bounce_notice_recipient = $error_notice_recipient
2bounce_notice_recipient = $error_notice_recipient
#The list of error classes that are reported to the postmaster
notify_classes = bounce, delay, policy, protocol, resource, software

拒否されるのは、次のいずれかの行が原因です。

reject_non_fqdn_helo_hostname、
reject_non_fqdn_recipient

これがお役に立てば幸いです

1