【发布时间】:2019-02-22 22:38:33
【问题描述】:
我正在尝试使用 Laravel 的 auth 包,但在尝试使用其“发送密码重置链接”选项时遇到了各种错误。我使用 MAMP 作为服务器。默认情况下,我的 .env 如下所示:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
我在尝试发送邮件时不断收到 Swift_TransportException 错误。
我是否应该使用我的电子邮件和密码连接我拥有的 Gmail 地址,本质上是告诉 Laravel 使用 Gmail 作为邮件服务器?由于我的密码会公开,这不是安全风险吗?
作为替代方案,我可以/应该将邮件服务器添加到 MAMP 并使用其凭据吗?再说一遍,这不是安全风险吗?
【问题讨论】:
-
问题不在于具体错误,而在于最佳实践。例如,在 Gmail 中允许“不太安全的应用”或两步验证应用密码。或者设置一个备用邮件服务器?
-
.env的内容不会“公开”。您可以在测试中使用 Gmail,但最好在生产中使用 Sendgrid 或 Amazon SES 之类的东西。同样,在任何这些情况下,您的凭据都不会显示给应用程序的访问者,除非您做了一些愚蠢的事情,例如将config()的内容打印到某处的浏览器。 -
您收到该错误是因为 Mailtrap.io 要求您创建一个免费帐户,他们会为您提供凭据。如果您决定使用 Laravel Homestead 而不是 MAMP,它将包含 MailHog 作为虚拟电子邮件服务器,并带有 gui 收件箱 ui。