我已经在Ubuntu 16上设置了我的Posfix电子邮件SMTP服务器,它正在工作。我以前使用托管公司的SMTP服务器,但我更愿意使用自己的服务器。
我用Java Mail发送电子邮件,但区别在于,当我通过托管公司和收件人地址发送邮件时,我得到的是:
com.sun.mail.smtp.SMTPAddressFailedException: 450 4.1.2 :收件人地址被拒绝:域未找到
但是,当我用后缀发送时,也不会抛出任何例外。我查看后缀日志,消息如下:
操作:失败状态: 5.4.4诊断-代码:X-后缀;主机或域名找不到。name=somebod@ggmail.com type=AAAA的名称服务错误:找不到主机
但这绝不是作为java异常传播的。
有谁知道如何设置后缀以达到同样的效果呢?
谢谢,雨果
发布于 2018-01-10 21:25:49
将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将接受传入的邮件,对其进行排队,只注意域在尝试传递it....and时不存在,然后弹出消息。
如果reject_unknown_sender_domain
首先出现,那么将检查所有客户端,无论它们是否与permit_*
规则匹配,电子邮件将被5xx代码拒绝。
在后缀中,规则的顺序总是很重要的。
示例:
如果在main.cf
中有以下内容:
smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/junk,
check_client_access hash:/etc/postfix/junk,
check_helo_access hash:/etc/postfix/junk,
reject_unauth_pipelining,
permit_tls_clientcerts,
permit_sasl_authenticated,
permit_mynetworks
在reject_unknown_recipient_domain
行之前添加permit
,例如:
smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/junk,
check_client_access hash:/etc/postfix/junk,
check_helo_access hash:/etc/postfix/junk,
reject_unauth_pipelining,
reject_unknown_recipient_domain,
permit_tls_clientcerts,
permit_sasl_authenticated,
permit_mynetworks
如果您还没有smtpd_recipient_restrictions
规则,那么添加一个如下所示:
smtpd_recipient_restrictions = reject_unauth_pipelining,
reject_unknown_recipient_domain,
permit_mynetworks
但是,您应该做一些关于配置后缀的更多研究。
https://unix.stackexchange.com/questions/416271
复制相似问题