PHPMailer SSL 验证问题:证书验证失败
问题:
尝试发送时来自具有自签名证书的邮件服务器的电子邮件,PHPMailer 会抛出以下错误:
PHP Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in class.smtp.php on line 327.
解决方案:
从 PHP 5.6 开始,SSL 证书验证已被介绍了。要在不进行验证的情况下恢复到旧行为,请在 PHPMailer 中设置 SMTPOptions 属性:
<code class="php">$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );</code>
注意:
禁用 SSL 验证会产生安全影响。如果没有验证,恶意行为者可以冒充可信端点并执行中间人攻击。在使用此解决方案之前请考虑这些风险。
以上是使用带有自签名证书的 PHPMailer 时如何修复'证书验证失败”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!