【发布时间】:2020-12-16 19:09:02
【问题描述】:
我正在尝试在 laravel 7 中使用 Gmail 发送邮件。我在 localhost 中得到结果但是当我在主机上上传项目时收到此错误并且电子邮件未发送:
local.ERROR: Connection could not be established with host smtp.gmail.com :stream_socket_client(): unable to connect to tcp://smtp.gmail.com:587 (Connection refused) {"userId":1,"exception":"[object] (Swift_TransportException(code: 0): Connection could not be established with host smtp.gmail.com :stream_socket_client(): unable to connect to tcp://smtp.gmail.com:587 (Connection refused) at /home/wbrubkcom/libs/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:269)
我的电子邮件环境配置是:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail
MAIL_PASSWORD=myemailpassword
MAIL_ENCRYPTION=tls
我在 StackOverflow 中搜索并测试了不同的方法,例如使用 Gmail 应用密码或将端口更改为 465 或将加密更改为 ssl,但我没有得到结果。
【问题讨论】:
-
这可能是 Gmail 的一项安全功能。如果您没有从同一 IP 地址登录到他们的网站,它可能不允许从 IP 地址进行 smtp 访问。如果您没有特别好的理由从 gmail 帐户发送电子邮件,我强烈建议您使用不同的邮件传输服务,例如 maligun 或类似服务。
-
另外,取决于您的主机。默认情况下,可能会阻止端口 587 上的传出流量
-
@OneSimpleGeek 这是个好主意。我尝试使用 Mailchimp,但它有限制,我还不能使用高级帐户。那么mailgun有什么限制吗?
-
我已经在多个项目中断断续续地使用了几年,并且没有遇到任何成为问题的限制。如果您处理的邮件数量较少,可以免费试用,试用后非常便宜。
-
谢谢,亲爱的。我会试试这个。