我们正在尝试向新成员发送自动回复电子邮件。我们在同一台服务器上的其他网站上使用相同的配置,没有任何问题。发送电子邮件时,将返回以下错误:
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进行征文
我们尝试了以下方法但没有成功:
smtp.sendgrid.net
命令之前发送AUTH
命令(返回相同的不同错误250)此外,我们无法通过PUTTY连接。我们使用MojoHost验证了SSH权限是否正确。
我在另一篇文章中读过
正确的解决方法是用一个好的证书替换无效,配置错误或自签名的证书。
也没有成功。希望有人可以提供一些有用的见解。现在试着解决这个问题一周......
谢谢, 麦克
答案 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