You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Mail本地正常,Godaddy共享主机连接smtp.gmail.com失败求助

Laravel Mail在Godaddy共享主机连接Gmail SMTP失败的解决方案

我之前帮好几个开发者踩过Godaddy共享主机的这个坑,大概率是Godaddy的SMTP端口限制在搞鬼——他们的共享主机默认会封锁对外的25、465这类常用SMTP端口,而且对第三方SMTP服务(比如Gmail)有严格的出站限制。下面给你按优先级整理几个靠谱的解决方案,一步步来试:

1. 优先使用Godaddy自带的邮件服务器(最稳妥)

Godaddy允许用自己域名绑定的邮箱账户发信,完全不会有端口封锁问题,这是最省心的方案。修改你的.env配置:

MAIL_MAILER=smtp
MAIL_HOST=smtpout.secureserver.net
MAIL_PORT=465
MAIL_USERNAME=你的Godaddy邮箱地址(比如info@yourdomain.com)
MAIL_PASSWORD=你的Godaddy邮箱登录密码
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=你的Godaddy邮箱地址
MAIL_FROM_NAME="${APP_NAME}"

注意:如果是刚创建的Godaddy邮箱,先登录网页版确认能正常收发邮件,避免因为密码错误或者邮箱未激活导致失败。

2. 尝试Gmail的替代端口(坚持用Gmail的话)

Godaddy可能没封锁587端口,你可以试试调整Gmail的SMTP配置,同时必须用应用专用密码(因为Gmail现在已经淘汰了“不太安全的应用访问”选项,两步验证开启后才能生成应用密码):

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=你的Gmail邮箱地址
MAIL_PASSWORD=你的Gmail应用专用密码(不是原登录密码)
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=你的Gmail邮箱地址
MAIL_FROM_NAME="${APP_NAME}"

步骤提醒:

  • 先登录Google账号开启两步验证;
  • 进入Google账号的“安全”页面,找到“应用专用密码”,生成一个专门用于Laravel Mail的密码,填到上面的配置里。

3. 排查主机缓存与连通性

部署完配置后,一定要执行缓存清除命令,不然Laravel会沿用旧的配置:

php artisan config:cache

另外,你可以在Godaddy主机的SSH终端里测试端口连通性,确认是不是端口被封:

telnet smtp.gmail.com 587

如果返回“Connection refused”,那基本可以确定是Godaddy封了这个端口,别再折腾Gmail,直接用方案1就行。

4. 备选:改用Sendmail或Mailgun驱动

如果上面的方案都不行,试试用Godaddy支持的Sendmail驱动:

MAIL_MAILER=sendmail
MAIL_FROM_ADDRESS=你的邮箱地址
MAIL_FROM_NAME="${APP_NAME}"

或者用Mailgun这类API驱动的邮件服务(需要注册Mailgun账号并配置API密钥),API调用不受SMTP端口限制,稳定性更高。

内容的提问来源于stack exchange,提问作者kishan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:52:46