我正在尝试将 SASL 设置为中继主机以发送外部电子邮件。我已经阅读了大量资料并做了我应该做的一切。但是我们的提供商不接受我使用以下方式中继电子邮件(我们不在他们的网络上,但他们说只要我们使用 SASL 进行身份验证就可以):
主机 mailhost.zen.co.uk[212.23.3.98] 表示:550-这不是开放中继。要通过此服务器发送,您必须在 Zen Internet IP 地址上为 550 或通过 TLS 进行身份验证。(回复 MAIL FROM 命令)
我们同意我不发送用户名和密码,否则它会发送,或者说我的用户名密码不正确。
问题是,为什么 Postfix 不发送它:
以下是我认为相关的 main.conf 部分:
smtpd_helo_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_hostname, reject_invalid_hostname, permit
smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org, reject_rbl_client blackholes.easynet.nl, reject_rbl_client dnsbl.njabl.org
smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination, check_policy_service inet:127.0.0.1:60000, permit
smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining, permit
relayhost = mailhost.zen.co.uk
smtpd_sasl_auth_enable = yes
smtpd_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_type = cyrus
smtpd_sasl_authenticated_header = no
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
当然,我已经在 sasl_passwd 中设置了密码并对其进行了后映射。以下是我一直在使用的一些资源:
如果有人有其他建议那就太好了:)
答案1
如果您希望 MTA 的 SMTP 连接通过mailhost.zen.co.uk
SASL 认证,您需要参数smtp_sasl_*
,而不是smtpd_sasl_*
参数。后者适用于您是接收MTA,而前者适用于当您连接到另一个 MTA 时,正如您似乎想要在这里做的那样。