我在一家公司找到一份系统管理员的新工作已经一个半月了。前几天,一个长期存在的问题出现了:我们的一些外发邮件(给重要收件人)返回时有错误(标记为垃圾邮件),其他邮件超时等。
无论如何,长话短说,我们遇到的症状让我认为将端口从 25(我能够确认这是我们正在使用的端口)更改为通常建议的 587 值得一试。
这就是扭曲的地方。我和另一位年轻同事一起被聘为 3 人团队的一员——名单上还有一位年长的同事。这位年长的同事是一位“职业二把手”,他最近失去了他的搭档(我们被雇来接替他)。因为他总是“第二小提琴手”,所以很多事情他都不愿意。
因此,当我提议更改端口时,他断然拒绝,因为正如他所说,“那肯定会搞砸其他事情,所以我不想玩那个”。(我在这里的第一个半月得出的结论是,他在某些领域缺乏知识,这就是其中之一。)
更改我们的邮件服务器上的端口真的会“搞砸其他事情”吗?(我对这方面的知识也有点生疏,过去 10 年我在一个完全不同的领域工作。)
端口本身不执行任何操作。收件人邮件系统不知道您的邮件服务器最初是通过哪个端口接收邮件的。真正的区别在于邮件服务器对通过这些端口发送的消息执行不同的处理:
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 收到时显示的标题。)