SMTP in Laravel 7 godaddy hosting



所以我在Laravel 7中创建了一个应用程序并将其部署在Godaddy共享主机中,除了邮件之外,一切都可以正常工作。

这是 .env 值

MAIL_MAILER=smtp
MAIL_HOST=smtp.office365.com
MAIL_PORT=587
MAIL_USERNAME=email@outlook.com
MAIL_PASSWORD=password
MAIL_ENCRYPTION=TLS
MAIL_FROM_ADDRESS=email@outlook.com
MAIL_FROM_NAME="YourName"

以及配置/邮件中的值.php'default' => env('MAIL_MAILER', 'smtp')

这在本地主机中完美运行,但是当我部署到goDaddy共享主机时,这似乎不起作用。 我尝试将值更改为 .env 值以MAIL_MAILER=sendmail和 congif/mail.php更改为'default' => env('MAIL_MAILER', 'sendmail')

这不会显示任何错误,也会显示在成功消息中。 但邮件未发送。 什么是修复?

GoDaddy 似乎阻止了 SMTP 端口以避免使用第三方 SMTP 服务 [1] [2]。为了发送电子邮件,GoDaddy说使用他们的SMTP中继服务器,这不需要身份验证。所以你的环境看起来像:

MAIL_MAILER=smtp
MAIL_HOST=relay-hosting.secureserver.net
MAIL_PORT=25
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=email@yourgodaddydomain.com
MAIL_FROM_NAME="YourName"

来自共享主机的电子邮件极有可能被大多数服务器列入黑名单。

您的下一个选择是使用电子邮件API,例如Mailgun或Sendgrid(还有其他提供商)。他们俩都有一个免费计划,配额有限,因此您可以尝试。

最后,您最后的手段是放弃 GoDaddy(反正我从来不喜欢它们)并转移到另一个主机提供商。我建议DigitalOcean(向我询问推荐链接以获得25美元)或AWS。

更改您的 .env

MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=no-reply@your_godaddy_domain.com
MAIL_FROM_NAME="${APP_NAME}"

最新更新