swaks --server mail.example.com:587 --tls swaks --server mail.example.com:465 --tlsc # 都回 220 才算通
插件里端口填 587 一直报 SMTP connect() failed,换成 465 就正常,其实服务器两个端口都开着。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:465 是连上即加密,587 要先明文连接再协商 STARTTLS,客户端加密方式选错就会握手失败。
「SMTP 端口选择」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。
把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。改完隔一天再看一次,当场正常不代表能稳住。
测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
处理上按这个顺序:确认端口对应的加密方式;587 选 STARTTLS;465 选 SSL 并校验证书。
确认没问题再收工,两种加密方式都能连上,插件不再报 connect failed。
