小编Rob*_*uka的帖子

PHPMailer生成PHP警告:stream_socket_enable_crypto():对等证书与预期不匹配

我在PHP 5.6上使用PHPMailer,在PHP 5.6中获得认证的增加的安全性当然很有趣.

我正在尝试向dreamhost上托管的域发送测试消息,PHPMailer返回的错误是:无法连接到SMTP主机.

这个错误不对,我已启用日志记录,这里是实际发生的事情.

连接:打开到mx1.sub4.homie.mail.dreamhost.com:25,timeout = 30,options = array()连接:打开S:220 homiemail-mx32.g.dreamhost.com ESMTP

C:EHLO s81a.ikbb.com

S:250-homiemail-mx32.g.dreamhost.com 250-PIPELINING 250-SIZE 40960000 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250 8BITMIME

C:STARTTLS

S:220 2.0.0准备启动TLS

C:退出

S:SMTP错误:QUIT命令失败:连接:已关闭

我无法理解为什么PHPMailer只是放弃,在应该开始发送消息时发出QUIT命令.我从另一个日志中获得了另一条线索:

PHP警告:stream_socket_enable_crypto():对等证书CN = *.mail.dreamhost.com' did not match expected CN=mx1.sub4.homie.mail.dreamhost.com'在/home/ikbb/domains/dev.ikbb.com/public_html/includes/phpmailer/5.2.10/class.smtp .PHP

如果我使用一些自定义选项来阻止验证他们正在使用的证书,我可以让它继续.这是我有的:

        $mail->SMTPOptions = array (
        'ssl' => array(
            'verify_peer'  => false,
            'verify_peer_name'  => false,
            'allow_self_signed' => true));
Run Code Online (Sandbox Code Playgroud)

如果我将SMTPOptions放在那里并跳过对等验证,则消息正常 - 在PHP中根本没有警告.

我如何捕获该错误,所以我知道存在问题但仍然发送消息?

php ssl openssl phpmailer

40
推荐指数
4
解决办法
8万
查看次数

标签 统计

openssl ×1

php ×1

phpmailer ×1

ssl ×1