我已经在 Ubuntu 16 上设置了我的 Posfix 电子邮件 SMTP 服务器并且它正在工作。我曾经使用托管公司的 SMTP 服务器,但我更愿意使用自己的。
我正在使用 Java Mail 发送电子邮件,但不同之处在于,当我通过托管公司发送并且收件人地址错误时,我得到:
com.sun.mail.smtp.SMTPAddressFailedException:450 4.1.2:收件人地址被拒绝:找不到域
但是当我使用 Postfix 发送时,不会抛出异常。我检查 Postfix 日志,消息是:
行动:失败状态:5.4.4 诊断代码:X-Postfix;未找到主机或域名。[email protected] type=AAAA 的名称服务错误:找不到主机
但这永远不会作为 java 异常传播。
任何人都知道如何设置 Postfix 以使其行为相同?
谢谢,雨果
在
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 代码拒绝电子邮件。在 postfix 中,规则的顺序总是很重要的。
例子:
如果您有以下内容
main.cf
:在行前添加
reject_unknown_recipient_domain
某处permit
,例如:如果您还没有
smtpd_recipient_restrictions
规则,请添加如下规则:但是,您应该对配置后缀进行更多研究。