“ stream_socket_enable_crypto():对等证书CN ='gains.nanosupercloud.com'与预期的CN ='smtp.sendgrid.net'不匹配”

时间:2018-12-31 06:24:00

标签: php laravel email

我在laravel中从事邮件工作。我正在遵循配置。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=********
MAIL_PASSWORD=########
MAIL_ENCRYPTION=tls

我已经尝试过了,但是没有用

stream_socket_enable_crypto(): Peer certificate CN=`cs723.mojohost.com' did not match expected CN=`smtp.sendgrid.net'

还有更多类似的问题,但我仍然没有解决方案。我出现以下错误:

  

ErrorException(E_WARNING)   stream_socket_enable_crypto():对等证书CN = gains.nanosupercloud.com' did not match expected CN= smtp.sendgrid.net'

我不知道我在做什么错。这是用于发送电子邮件的代码。

public function toMail($notifiable)
{
    return (new MailMessage)
                ->from(\Config::get('values.app_email'),\Config::get('values.app_name'))
                ->subject('Successfully approved your Company')
                ->greeting(sprintf('Hello %s', $this->user->name))
                ->line('Your company has been approved successfully. Now, it will be visible to our website');
}

任何建议都值得赞赏。

注意:一切都可以在本地服务器上正常运行(ubantu 16.04)

4 个答案:

答案 0 :(得分:0)

我给出的答案可能看起来很有趣,但是在实时服务器中发送邮件时出现相同的错误

只需更改

MAIL_DRIVER=smtp

MAIL_DRIVER=sendmail

我不知道这是怎么回事的原因,但这对我来说很好

答案 1 :(得分:0)

我也是这样。在本地它工作正常,但在实时服务器中,因为我使用 GoDaddy 服务器,同样的问题不断出现。但最后,它起作用了。下面是我的 .env 文件代码。

MAIL_DRIVER=smtp
MAIL_HOST=abc.com
MAIL_PORT=25
MAIL_USERNAME=info@abc.com
MAIL_PASSWORD=******
MAIL_ENCRYPTION=

希望它对你有用。

答案 2 :(得分:0)

在 .env 文件中添加这一行以禁用邮件加密

MAIL_ENCRYPTION = NULL

答案 3 :(得分:0)

我有类似的问题,我所做的是改变

MAIL_DRIVER=smtp

MAIL_DRIVER=sendmail

然后用

清除缓存
php artisan config:cache

一切都很顺利