PHPMailer 不适用于自签名 SSL 证书

时间:2021-07-27 11:28:38

标签: ssl smtp gmail phpmailer

我在使用 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 电子邮件地址,我会在垃圾邮件文件夹中收到该电子邮件。

我该如何解决这个问题?

问候

1 个答案:

答案 0 :(得分:1)

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

如果您连接到 gmail,他们将不会提供自签名证书。更有可能的是,如 the troubleshooting guide describes in great detail,您服务器的 CA 证书包已过时。或者,如果您确实获得了自签名证书,请仔细检查域是否也匹配,以防您的流量被重定向。指南中的 openssl 测试应该可以帮助您诊断问题所在。禁用证书验证是一个非常糟糕的迹象;你应该着眼于解决问题的原因,而不是隐藏症状。

相关问题