我使用 Postfix 运行一个虚拟电子邮件服务器,该服务器将地址为的电子邮件转发domain.com
到特定的 Gmail / Hotmail 帐户。该服务器还充当邮件中继,saslauthd
用于允许各方登录并发送电子邮件domain.com.
目前,此邮件中继仅适用于 TLS 上的端口 25(您可以通过在 Gmail 中创建例如仅发送电子邮件地址来访问它)。我应该为此目的打开端口 587 而不是使用端口 25?如果是这样,我是否需要禁用端口 25 上的邮件中继访问(因为我读到 587 用于 25 以减少垃圾邮件)?
我该怎么做呢?是否像在 Postfix中添加submission
端口一样简单?master.cf
提交端口
587
不直接用于减少垃圾邮件,但打击垃圾邮件确实需要另一个端口:SMTP 端口通常25
由 ISP 在每个消费级互联网连接和所有其他不应有任何电子邮件的网络上关闭服务器。这可以防止受感染的计算机直接与接收服务器通信,但作为副作用,您的经过身份验证的用户也无法使用中继。“我应该”这个问题的答案取决于您的用户是否面临这些问题。那可能是的。另外,使用单独的端口提交变得方便还有其他原因。对于这种设置,您根本不将端口
25
用于出站邮件,这使您可以对 SMTP 和提交使用单独的设置(例如smtpd_sender_restrictions
/smtpd_recipient_restrictions
)。对于收到的邮件,
25
您通常会执行许多检查,例如 SPF、DMARC、DNS BL。这些检查对经过身份验证的连接不是很有用,是吗?您可以在提交时简单地跳过它们。收件人限制?!其中大部分实际上是对发件人的限制,但我喜欢仅在 SMTP 命令之后触发它们以
RCPT TO
获取更多调试信息,例如误报。对于电子邮件提交 ,
587
您可能需要对经过身份验证的用户进行不同类型的检查。(这些设置会master.cf
覆盖并覆盖 中的设置main.cf
。首先我们启用 SASL 身份验证;此配置尚未完成,因为它取决于您的 SASL 提供商。Dovecot?)您不希望每个用户都能够代表其他用户发送邮件,是吗?如果您对消息进行 DKIM 签名,这一点尤其重要。可以将地址绑定到某些用户名。在以下示例中,这些地址/用户名对已经以
virtual_alias_maps
我们也可以在此处使用的格式定义,但您的设置很可能需要另一个映射,因为您没有本地邮箱。然后,您不想接受到不存在的域的邮件等,就像您不想在
smtpd_recipient_restrictions
for port上接收来自那种域的邮件一样25
。只是现在他们实际上测试了收件人地址。在同一行(换行符仅用于格式化),您可以通过拒绝所有未经身份验证的内容来强制执行 SASL 身份验证。