我收到了这样的错误消息:
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=<secret@valid.domain.tld> proto=ESMTP helo=<m2osw.com>
我不太确定我是否理解尖括号中的“电子邮件”地址:
SRS1=R3xB=m2osw.com==hj4N=ZL=lime.ocn.ne.jp=@com
这在我看来是垃圾,但也许是信封的一种形式?
原稿看上去如下:
From: western union <"westernunion1."@lime.ocn.ne.jp>
(这是一封清晰的垃圾邮件,但非垃圾邮件也是如此。)
据我所知,我的设置以前运行良好,但我将我的一台邮件服务器升级到最新的postfix (嗯,Ubuntu16.04而不是14.04)。存档服务器一段时间前就升级了。
这个错误发生在我从gmail给自己发邮件的时候。然后gmail收到反弹。
该设置如下所示:
+------------------+ +------------------+
| | | |
| Client |--->| Main Server |
| | | |
+------------------+ +------------------+
|
v
+------------------+
| |
| Archive Server |
| |
+------------------+
在主服务器上,电子邮件按预期工作。当电子邮件到达存档服务器时发生错误。
在从一个后缀MTA转发到另一个后缀MTA时,是否有什么东西可以“破坏”电子邮件地址呢?
发布于 2017-01-29 14:26:45
好吧,我找到凶手了。这些“奇怪”的电子邮件地址从SRS开始,它指向postfix
可以通过postsrsd
使用的SPIF支持。postsrsd
守护进程作者建议在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
显然,这会生成电子邮件地址的信封。该信封的规格如下:
SRS0+xxxx=yy=example.com=alice@yourdomain.org
在我的例子中,问题是@
之后的域名是动态生成的。这意味着使用完整的计算机主机名并删除名称。因此,如果我以m2osw.com
作为主机名,postsrsd
最终使用com
作为域名。换句话说,我的电子邮件地址看起来如下:
...@com
显然,@com
不是一个有效的域名。
postsrsd
守护进程使用文件中的一些定义:
/etc/default/postsrsd
在这里,我们找到一个名为SRS_DOMAIN
的变量。通过使用正确的域名设置该变量:
SRS_DOMAIN=m2osw.com
电子邮件会像预期的那样被封起来,错误也就消失了。(也就是说,我们在旧的“主服务器”上有了正确的设置。我们在进行转会时错过了这个机会。
https://serverfault.com/questions/829210
复制