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

这对我来说看起来很糟糕,但也许它是一种信封forms?

原来的样子是这样的:

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

(这是一个明确的垃圾邮件,但也发生在非垃圾邮件。)

据我所知,我的设置之前工作正常,但我升级我的邮件服务器之一到最新的后缀(以及Ubuntu 16.04而不是14.04)。 档案服务器升级了一会儿。

当我通过Gmail发送邮件时发生这个错误。 然后Gmail收到反弹。

设置是这样的:

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

主服务器上 ,电子邮件按预期工作。 电子邮件到达存档服务器时发生错误。

是否有什么可以改变,从一个后缀MTA转发到另一个“打破”电子邮件地址的方式?

我不这么认为,你共享的日志显示,一切看起来OK,后缀工作良好。 如果您需要了解有关正在进行的更多信息,请将以下内容添加到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

我希望这有帮助

好吧,我find了罪魁祸首。 这些“奇怪的”电子邮件地址从SRS开始,它指向postfix可以通过postsrsd使用的SPIF支持。 postsrsd守护进程作者build议在postfix/main.cf文件中执行四个条目:

 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] 

在我的情况下,问题是@后面的域名是dynamic生成的。 这意味着采取完整的电脑主机名称,并删除名字。 所以如果我有m2osw.com作为主机名, postsrsd最终使用com作为域名。 换句话说,我最终会看到如下的电子邮件地址:

 ...@com 

很明显, @com不是一个有效的域名。

postsrsd守护进程使用文件中的一些定义:

 /etc/default/postsrsd 

在那里我们find一个名为SRS_DOMAIN的variables。 通过使用正确的域名设置该variables:

 SRS_DOMAIN=m2osw.com 

电子邮件如预期般笼罩,错误消失。 (即我们在旧的“主服务器”上正确安装了这个设置,我们错过了这个工作)。