自己装完 postfix 后外发全部超时,telnet 对方 25 端口没有任何回应,安全组已经放行。乍看像缓存或者权限的锅,追下去往往不是。
telnet smtp.example.com 25 nc -vz smtp.example.com 587 # 25 超时基本就是被封
追下去是这么回事:多数云厂商默认封禁出站 25 端口防止垃圾邮件,只能改用 465 或 587 的提交端口发信。
「自建邮局选型」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
权限不要一口气开到最大,先加到够用再往上试,范围小才好收。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
具体做法是,先确认 25 端口是否被封;改用 587 走中继发信;量大的直接换企业邮箱更省事。
验收就看一点,改用 587 后能连上,外发邮件正常进入投递队列。
