背景:
我们有一个在线商店,它使用 SMTP 服务器发送消息。当客户下订单时,系统会将确认信息发送到客户的地址 (A),并将副本发送到注册在同一 SMTP 服务器中的其他两个帐户(B 和 C)。
问题:
如果客户输入了错误的电子邮件地址(例如:tom@gmail.co
<- 请注意它应该是com
),它会退回所有组,并且 (B) 或 (C) 都不会收到消息。
日志:
Apr 25 10:12:37 smtp_server postfix/smtpd[8153]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 450 4.1.2 <tom@gmail.co>: Recipient address rejected: Domain not found; from=<system@orders.example.com> to=<tom@gmail.co> proto=ESMTP helo=<localhost>
Apr 25 10:12:37 smtp_server amavis[12654]: (12654-06) (!)mail_via_smtp: NOTICE: aborting SMTP session, Bail out, DATA accepted but tempfailed recips, not a LMTP input at (eval 134) line 979.
Apr 25 10:12:37 smtp_server amavis[12654]: (12654-06) (!)FWD from <system@orders.example.com> -> <tom@gmail.co>,<backup@example.com>,BODY=7BIT 451 4.5.0 From MTA(smtp:[127.0.0.1]:10025) during fwd-data-chkpnt (Bail out, DATA accepted but tempfailed recips, not a LMTP input at (eval 134) line 979.): id=12654-06
Apr 25 10:12:37 smtp_server amavis[12654]: (12654-06) Blocked MTA-BLOCKED {TempFailedOpenRelay}, [111.222.111.222]:41916 [111.222.111.222] <system@orders.example.com> -> <tom@gmail.co>,<backup@example.com>, Queue-ID: 4DA411806E13C, Message-ID: <cf7e32ff-1b33-9672-808a-0edfe7ede5f4@aju-cil.com>, mail_id: DZSKWfuau0Pu, Hits: 0.8, size: 745, 3627 ms
Apr 25 10:12:37 smtp_server postfix/smtp[31968]: 4DA411806E13C: to=<tom@gmail.co>, relay=127.0.0.1[127.0.0.1]:10024, delay=3.8, delays=0.17/0/0/3.6, dsn=4.1.2, status=deferred (host 127.0.0.1[127.0.0.1] said: 450 4.1.2 id=12654-06 - Temporary MTA failure on relaying, from MTA(smtp:[127.0.0.1]:10025): 450 4.1.2 <tom@gmail.co>: Recipient address rejected: Domain not found (in reply to end of DATA command))
预期的:
无论(A)地址是否错误,(B)或(C)都应该收到电子邮件。
笔记:
如果我使用 TO、CC 或 BCC 从我的个人计算机向这些帐户发送电子邮件,也会发生同样的情况。所以我得出结论,可以在邮件服务器上做一些事情。
postfix 或 amavis 中是否有任何设置阻止这种情况发生或我应该添加以使其工作?
我有完全相同的问题。我能够通过在我的smtpd_recipient_restrictions中的reject_unknown_recipient_domain前面添加一个warn_if_reject来解决