我使用与服务器上相同的设置。我有一个运行Ubuntu的EC2实例,然后我使用Docker来托管一个Ubuntu图像,在nginx和php7上运行我的Laravel项目。我的本地设置完全相同,我使用相同的Docker镜像和所有内容。
当我在本地测试我的电子邮件时,它们无缝地工作,没有错误或问题,但是当我在EC2上测试它时,我在Laravel中收到以下错误:
Swift_TransportException:连接到tcp://smtp.mailgun.org:587在/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:404超时
我尝试使用端口25,2525和465但是他的结果完全相同。以下是我的env变量:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=postmaster@placeholder.com
MAIL_PASSWORD=5uup3rL0nGPa55w0RdY0uPr0bablykn0
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=no-reply@placeholder.com
MAIL_FROM_NAME="placeholder Team"
MAILGUN_DOMAIN=placeholder.com
MAILGUN_SECRET=key-MyK3y1s0ac001y0uw15hy0uhadi7h3h3
密码和密码是虚假数据
在Mailgun的信息中心我已验证了我的域名(我在本地使用localhost.MYDOMAIN.com
指向127.0.0.1
),所有支票均为绿色,但mxa.mailgun.org
和mxb.mailgun.org
除外因为我们正在使用gmail收发电子邮件。不确定这是否是来源,但我不能冒险仅为测试禁用电子邮件。
如果我使用telnet smtp.mailgun.org 25
(或任何其他端口)telnet到Mailgun,我会得到一个连接,所以我可以访问。
我还申请减轻我在Amazon上放入EC2服务器的服务器上的电子邮件限制。不知道什么时候这实际上会生效,所以不确定它是否会有所帮助(可能)
我不知道为什么我的服务器上只有超时,而且它在我的本地工作,但任何建议都将不胜感激!
我确实试图寻找答案,但没有成功。
替代方法如果有人在努力解决同样的问题,那就不值得付出努力,而只是实施Mailgun API,这样你就不必忍受这些问题了,这是什么我现在已经做了哪些,如果我知道我将面临的问题,从一开始就会做到。 所以我仍然没有解决方案,只是避免了它以及为什么我没有更新答案而只是通过编辑更新。不确定这是否正确。