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

JOA*_*_H1 4 php email

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

stream_socket_enable_crypto():对等证书CN = cs723.mojohost.com与预期的CN =不匹配smtp.sendgrid.net

https://gyazo.com/ffb0cb7645d51ed21ecc863f1e3196b2

我们正在使用Laravel连接到:smtp.sendgrid.net端口 - 使用TLS的587 encription

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

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

我在另一篇文章中读过这篇文章

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

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

谢谢,迈克

Cha*_*laa 8

在方法createSmtpDriver中

\供应商\ laravel \框架的\ src \照亮\邮件\ TransportManager.php

它从中获取密钥流

\ CONFIG\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,
    ],
],
Run Code Online (Sandbox Code Playgroud)

  • 这是一个不好的做法。 (5认同)

小智 6

从 WHM 禁用“SMTP 限制”。

对于上下文,如果您不使用 WHM/Cpanel 进行服务器管理,这将不适用于您。如果这样做,在左侧导航菜单的 WHM 中,只需键入“SMTP”,您就会看到 SMTP Restrictions 作为结果的首选。单击它,有一个禁用/启用切换按钮。

  • 您能否为您的答案添加更多背景信息? (2认同)

小智 1

如果您使用非 SSL 设置,请尝试通过删除 \config/mail.php 中的“tls”来取消加密设置

'加密' => env('MAIL_ENCRYPTION', ''),