使用 gmail 发送 Laravel 5.5 邮件 [重复]

Posted

技术标签:

【中文标题】使用 gmail 发送 Laravel 5.5 邮件 [重复]【英文标题】:Send Laravel 5.5 mail using gmail [duplicate] 【发布时间】:2018-02-27 04:09:52 【问题描述】:

我在尝试使用 laravel 5.5 和 gmail 发送电子邮件时遇到错误。

MAIL_DRIVER=smtp
MAIL_HOST=gmail-smtp-msa.l.google.com
MAIL_PORT=587
MAIL_USERNAME=mygmailadress
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls

我将邮件主机从 smtp.google.com 更改为那个,因为我无法访问 smtp.google.com

这是我尝试发送邮件时遇到的错误

stream_socket_enable_crypto(): Peer certificate CN=`smtp.gmail.com' did not match expected CN=`gmail-smtp-msa.l.google.com'

这是我在使用 mail_host smtp.google.com 时使用的错误

Connection could not be established with host smtp.google.com 
[php_network_getaddresses: getaddrinfo failed: Name or service not known #0

请注意,我的测试服务器邮件陷阱一切正常。那么我怎样才能使这项工作用于生产呢?

【问题讨论】:

【参考方案1】:

邮件主机MAIL_HOST=smtp.gmail.com有错误

根据您的问题,您使用了MAIL_HOST=gmail-smtp-msa.l.google.comMAIL_HOST=gmail-smtp-msa.l.google.com

但gmail主机是smtp.gmail.com

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=mygmailadress
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls

【讨论】:

我该如何解决?【参考方案2】:

通常将加密设置为 ssl 有效:

'encryption' => 'ssl'

在你的config/mail.php

但你最好还是坚持smtp.gmail.com

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=mygmailadress
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=ssl

【讨论】:

ssl 不如 tls 安全,而且似乎对 gmail 已关闭,我无法使用 ssl 连接,但使用 tls 工作得很好

以上是关于使用 gmail 发送 Laravel 5.5 邮件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.5 不发送电子邮件

Laravel 5.5发送邮件

Laravel 5.5 发送电子邮件没有响应 smtp.gmail.com #10060

Laravel 5.5 中的多字段排序

在 Laravel 5.5 中使用 AJAX

如何在 Laravel 5.5 中将数据插入表格并获取电子邮件通知?