Jinnrry/PMail

TOM邮箱投递失败

Closed this issue · 9 comments

日志如下
Jan 28 18:38:43 vm pmail[1339975]: [error][2024-01-28 18:38:43][0a00012b65b62ea7f8f47247a2acd5b0][/home/runner/work/PMail/PMail/server/utils/send/send.go:181][0xc000488de0] 邮件投递失败tls: failed to verify certificate: x509: certificate is not valid for any names, but wanted to match tom.com

这个错误说明服务端支持TLS,但是对方提供的证书与域名不匹配

这好像不是免费邮箱?你给我个邮箱地址,我抓包测试下呢

发到你的邮箱了

x509: “tommx2.tom.com” certificate is not standards compliant

抓包看了一下,golang的tls库报这个错误,我对tls底层也不了解,没法继续排查了,感觉是对方的证书有问题,golang默认的tls库校验不过。另外,对方服务器这个证书,眼瞅着特别像是自签名的,不像是正经CA机构签发的

能否为这种做个兼容,不走ssl了

兼容这种我觉得不太合理
1、如果对方服务器确认是不支持TLS,那降级是没问题的,因为对方本来就没要求加密,对方要求就是放弃加密传输。不管安不安全的问题。
2、如果对方服务器确认支持TLS,说明对方是要求加密的。但是提供的证书确有问题,那正常情况下,就是出现了中间人攻击,在这种情况下忽略的话风险很大。
3、PMail是一个开源程序,我也不知道会在什么样的环境中运行,虽然我觉得大家应该不会传输什么机密数据,但是这种明显的安全风险还是得尽可能的规避。

另外,我写2.3.7这个版本的时候,抓包看了好几个邮箱,搜狐、189、QQ邮箱等,发现安全这东西,普通用户不能感知,优化的话改动成本又很大。国内这些运营商好多都直接放弃了,这都2024年了,这些基础安全措施都没有。这类邮箱的话,尽量不要用吧。

我用公有smtp server测试,是可以往TOM邮箱投递的。是不是tls库有选项可以配置的?

应该是没有开启TLS验证吧,我抓包看过,很多邮箱服务端,即使支持TLS,也不会使用TLS加密传输。我觉得这种纯粹的兼容,是对客户数据安全的不负责任,因此没有这么做。

(当然,商业服务可能更加注重兼容性,毕竟某个邮件发布出去,收不到,立马就有投诉。但是安不安全用户根本不在意,也感知不到)