![更改 SMTP 端口会“扰乱其他事情”吗?](https://linux22.com/image/1588088/%E6%9B%B4%E6%94%B9%20SMTP%20%E7%AB%AF%E5%8F%A3%E4%BC%9A%E2%80%9C%E6%89%B0%E4%B9%B1%E5%85%B6%E4%BB%96%E4%BA%8B%E6%83%85%E2%80%9D%E5%90%97%EF%BC%9F.png)
我在一家公司担任系统管理员,已经一个半月了。前几天,一个长期存在的问题出现了:我们发送的一些邮件(发送给重要收件人)出现错误(标记为垃圾邮件),其他邮件出现超时等。
总之,长话短说,我们所遇到的症状让我认为将端口从 25(我可以确认这是我们正在使用的端口)更改为经常建议的 587 是值得一试的。
事情的转折就在这里。我和另一位年轻同事被聘为一个 3 人团队的成员,团队中还有一位年长的同事。这位年长的同事是“职业二把手”,最近失去了他的搭档(我们被聘来代替他)。由于他一直是“二把手”,所以他对很多事情都很不情愿。
因此,当我提出更改端口时,他断然拒绝了,因为正如他所说“这肯定会搞乱其他东西,所以我不想尝试这样做”。 (我在这里的第一个半月就得出结论,他在某些领域缺乏知识,这是其中之一。)
更改邮件服务器上的端口实际上会“弄乱其他东西”吗?(我对此的了解也有点生疏,过去 10 年我在一个完全不同的领域工作。)
答案1
端口本身不做任何事情。接收邮件系统不知道您的邮件服务器最初通过哪个端口接受邮件。真正的区别在于邮件服务器执行不同的处理对于通过这些端口发送的消息:
TCP 25 用于服务器到服务器的连接(邮件交换),因此服务器通常不要求身份验证;提供可选的 STARTTLS;对入站邮件执行垃圾邮件过滤和 SPF/DKIM 检查,但不放置自己的 DKIM 签名。
TCP 587 和 465 用于客户端-服务器连接(邮件提交),因此服务器通常需要身份验证和 (START)TLS;不执行垃圾邮件过滤,而是在外发邮件上添加自己的 DKIM 签名。
(根据服务器,可能可以配置这两者的组合。例如,服务器可能允许在端口 25 上进行可选的身份验证,并且如果客户端验证了自身,则将消息视为传出消息,否则,将消息视为传入消息。
以防万一不明显,不要禁用端口 25 侦听器,因为需要它来接收来自其他域的邮件。端口 587/465 是附加服务,而不是替代服务。)
因此,您更改端口并不是为了更改号码,而是因为您想要其中一些副作用(特别是,如果在域上设置了 DKIM,您希望所有消息都经过 DKIM 签名)。
当然,正如一些副作用可以解决您的问题一样,其他副作用可能会“搞砸其他事情” - 例如,由于身份验证和 STARTTLS 在端口 587 上是强制的,您的客户端现在必须支持这两个功能(而在端口 25 上他们可能已经使用明文并依赖基于 IP 的白名单)。
你应该尝试找出具体来说是导致垃圾邮件问题的根源。(我会先向 Gmail 收件箱发送两封相同的邮件,一封通过端口 25,另一封通过端口 587,然后比较 Gmail 收到邮件时的标头。)