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

Laravel 5.6在GoDaddy平台邮件发送失败问题求助

Laravel 5.6 邮件发送成功但收件箱收不到的排查方案

咱们一步步拆解这个问题——Laravel返回“发送成功”只是框架层面的反馈,实际投递可能在SMTP环节藏着小状况,按下面的顺序排查准没错:

1. 先把.env配置拉满,别依赖默认值

你的config/mail.php是读取环境变量的,所以优先检查.env里的邮件参数,确保这些项都正确配置:

MAIL_DRIVER=smtp
MAIL_HOST=a2plcpnl0866.prod.iad2.secureserver.net
MAIL_PORT=465
MAIL_USERNAME=你的GoDaddy邮箱账号(比如test@mydomain.com)
MAIL_PASSWORD=你的邮箱密码(如果开了2FA,得用应用专用密码)
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=test@mydomain.com
MAIL_FROM_NAME="你的发件人名称"

划重点:你当前config里driver默认是sendmail,如果.env里没明确写MAIL_DRIVER=smtp,Laravel会直接忽略你配置的SMTP服务器,用sendmail跑,这大概率是核心问题!

2. 先去垃圾邮件文件夹挖一挖

很多测试邮件会被邮箱服务商判定为垃圾邮件,别直接跳过这一步——去收件箱对应的垃圾邮件、垃圾箱、广告邮件文件夹里找找,说不定邮件正乖乖待在那儿。

3. 扒Laravel日志找隐藏错误

虽然收到“发送成功”的响应,但底层SMTP可能有没抛出的错误,去storage/logs/laravel.log里搜mail或SMTP相关的日志条目,比如认证失败、连接超时、收件地址被拒收这类信息,日志会帮你精准定位问题。

4. 给域名配置SPF/DKIM记录

你的SMTP服务器是GoDaddy的,得确保域名mydomain.com的DNS记录正确配置了SPF和DKIM:

  • SPF记录:添加一条TXT记录,内容比如v=spf1 include:secureserver.net ~all
  • DKIM记录:在GoDaddy后台生成DKIM密钥,然后把对应的TXT记录加到域名DNS里
    这俩是邮箱服务商验证邮件合法性的关键,缺失或错误会直接导致邮件被拒收或扔进垃圾箱。

5. 排除队列延迟坑

如果你发送邮件时用了队列(比如Mail::to(...)->queue(...)),Laravel返回的“成功”只是把任务塞进队列,实际发送得靠队列worker执行:

  • 先确认队列服务在跑:执行php artisan queue:work(生产环境建议用supervisor管理队列进程,避免进程挂掉)
  • 查有没有失败任务:看看failed_jobs表(如果开了失败队列),有没有卡死的邮件任务

6. 用Tinker直接测试,排除业务逻辑干扰

为了确认不是注册流程的问题,直接用Laravel Tinker发一封测试邮件:
打开终端进入项目根目录,执行:

php artisan tinker

然后输入:

Mail::raw('这是一封测试邮件', function ($message) {
    $message->to('你的个人测试邮箱@example.com')
            ->subject('Laravel邮件测试')
            ->from('test@mydomain.com', '测试发件人');
});

如果还是收不到,说明是邮件配置的问题;如果能收到,那问题出在注册流程的邮件触发逻辑上。

7. 检查服务器出站端口是否开放

有些服务器会禁用出站的465端口(SMTP SSL端口),你可以在服务器上用telnet测试连接:

telnet a2plcpnl0866.prod.iad2.secureserver.net 465

如果连接失败,要么联系服务器提供商开放端口,要么改用587端口(对应TLS加密,.env里设MAIL_ENCRYPTION=tls)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:45:31