PHPMailer不能与自签名SSL证书一起工作



我有PHPMailer, SMTP和我的自签名SSL证书的问题。当我使用PHPMailer时,我获得下一条消息:

SMTP错误:无法连接到SMTP主机。SMTP连接失败。https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

为了解决这个问题,我找到了SMTPOptions。如果我添加:
$mail->SMTPOptions = array(                                 
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);

我的电子邮件发送,但我正在失去SSL安全性。事实上,如果我试图通过这种方式发送一个gmail电子邮件地址,我会在垃圾邮件文件夹中收到电子邮件。

我该如何解决这个问题?

确保您清楚所谈论的是哪个证书。用于您的网站的证书与发送电子邮件无关。重要的证书是由您连接到的远程邮件服务器提供的证书,而不是您的web服务器。

如果你连接到gmail,他们将提供自签名证书。更可能的情况是,正如故障排除指南中详细描述的那样,您的服务器的CA证书包已经过期。或者,如果您确实获得了自签名证书,请仔细检查域名是否也匹配,以防您的流量被重定向。指南中的openssl测试可以帮助您诊断问题所在。禁用证书验证是一个非常糟糕的迹象;你应该着眼于解决问题的根源,而不是隐藏症状。

最新更新