stream_socket_enable_crypto():对等证书CN =`cs723.mojohost.com'不符合预期的CN =`smtp.sendgrid.net'

时间:2017-01-09 17:57:54

标签: php email

我们正在尝试向新成员发送自动回复电子邮件。我们在同一台服务器上的其他网站上使用相同的配置,没有任何问题。发送电子邮件时,将返回以下错误:

  

stream_socket_enable_crypto():对等证书CN = import math x = 0 y = 0 for t in range(1,10000001): if t % 2 != 0: y += 1 if y % 2 != 0: x += 1/t else: x -= 1/t else: pass print(x/4) 与预期的CN = cs723.mojohost.com不匹配

https://gyazo.com/ffb0cb7645d51ed21ecc863f1e3196b2

我们正在使用Laravel连接到: smtp.sendgrid.net 港口 - 587 使用TLS进行征文

我们尝试了以下方法但没有成功:

此外,我们无法通过PUTTY连接。我们使用MojoHost验证了SSH权限是否正确。

我在另一篇文章中读过

  

正确的解决方法是用一个好的证书替换无效,配置错误或自签名的证书。

也没有成功。希望有人可以提供一些有用的见解。现在试着解决这个问题一周......

谢谢, 麦克

6 个答案:

答案 0 :(得分:7)

来自

的方法createSmtpDriver
  

\厂商\ laravel \框架\ SRC \照亮\邮件\ TransportManager.php

中获取密钥流
  

\设置\ mail.php

稍后用作

中的stream_context_create方法的自定义选项
  

\厂商\ swiftmailer \ swiftmailer \ lib中\类\夫特\运输\ StreamBuffer.php。

因此,要设置密钥verify_peer,verify_peer_name和allow_self_signed来解决OP提到的错误,您可以将以下内容添加到\ config \ mail.php中:

'stream' => [
    'ssl' => [
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true,
    ],
],

答案 1 :(得分:1)

通过删除&#t;'尝试取消设置加密。如果您使用的是非SSL设置,请在\ config / mail.php中

'加密' =>环境(' MAIL_ENCRYPTION',''),

答案 2 :(得分:1)

许多升级到PHP 5.6+的人遇到以下错误:

ErrorException:电子邮件发送到[电子邮件地址]失败:stream_socket_enable_crypto():对等证书CN = [主机名]'与预期的CN = [目标主机名]'不匹配-库/Zend/Mail/Protocol/Smtp.php:206

从PHP 5.6开始,默认情况下启用对等验证(http://php.net/manual/en/migration56.openssl.php)。

如果您正在运行WHM或Plesk,我发现此问题可以通过以下方式解决:

WHM:将“将传出SMTP限制为root,exim和mailman(FKA SMTP Tweak)”从“打开”更改为“关闭”。

Plesk:创建一个新的预订,并将URL设置为服务器主机地址,然后通过let加密插件为其分配SSL证书。

答案 3 :(得分:0)

CSF论坛上有一个帖子,但目前似乎还没有解决方案: CSF Blocking SMTP to Sendgrid

我也搜索解决方案..

答案 4 :(得分:0)

从WHM禁用“ SMTP限制”

答案 5 :(得分:0)

对于 laravel,在 .env 文件中添加这一行以取消邮件加密

MAIL_ENCRYPTION = NULL