无法连接smtp.mail.ru:465,SSL证书CN不匹配问题求助
解决SMTP证书CN不匹配问题
错误原因
配置的SMTP主机是smtp.mail.ru,但实际连接到的服务器证书CN为relay.v.fozzy.com,导致SSL校验失败。大概率是DNS解析被劫持、主机服务商强制替换SMTP服务器,或端口配置存在适配问题。
解决方案
- 排查DNS解析:在服务器执行
ping smtp.mail.ru或dig smtp.mail.ru,检查返回IP是否属于mail.ru官方地址。若解析到fozzy的IP,将服务器DNS更换为8.8.8.8或1.1.1.1后重试。 - 更换SMTP端口与加密方式:修改
.env配置,改用更通用的587端口(不易被劫持):
修改后重启应用,Laravel项目需额外执行MAIL_PORT=587 MAIL_ENCRYPTION=tlsphp artisan config:clear清除配置缓存。 - 检查主机商限制:如果是虚拟主机,部分服务商强制替换SMTP服务器为自身中继服务,这种情况需联系主机商解除限制,或改用主机提供的SMTP配置。
- 临时测试方案(禁止生产环境使用):若为测试场景,可临时跳过证书校验(风险极高)。在Laravel的
config/mail.php的smtp配置项中添加:'stream' => [ 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, ], ],
内容的提问来源于stack exchange,提问作者Ashot
相关产品推荐
相关产品推荐

