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

Laravel应用在GoDaddy主机上SMTP邮件发送故障求助

排查GoDaddy主机上Laravel邮件发送失败问题

首先修正配置矛盾

你当前的.env配置和GoDaddy提供的中继要求存在冲突:

  • GoDaddy明确要求smtp auth=false、smtp ssl=false/none,但你的配置里保留了MAIL_USERNAME、MAIL_PASSWORD,并设置MAIL_ENCRYPTION=TLS,这会直接导致SMTP连接失败。

按照GoDaddy要求修正.env配置:

MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="xyz@domain.com"
MAIL_FROM_NAME="${APP_NAME}"

注意:MAIL_ENCRYPTION需设为null,对应GoDaddy要求的无加密规则,Laravel中不能填false,必须用null。

下一步排查步骤

  1. 清除配置缓存
    运行以下命令确保新配置生效:

    php artisan config:clear
    

    若之前执行过config:cache,必须先清除缓存,否则旧配置会持续生效。

  2. 查看Laravel日志
    检查storage/logs/laravel.log文件,里面会记录邮件发送失败的具体错误信息(如连接被拒绝、认证失败、SPF验证失败等),这是定位问题的核心依据。

  3. 测试基础邮件发送
    先排除业务代码的干扰,写一个简单的测试路由:
    在routes/web.php中添加:

    Route::get('/test-mail', function () {
        try {
            \Illuminate\Support\Facades\Mail::raw('测试邮件内容', function ($message) {
                $message->to('xyz@domain.com')->subject('GoDaddy Laravel 测试邮件');
            });
            return '邮件发送请求已提交,请查看日志和收件箱';
        } catch (\Exception $e) {
            return '发送失败:' . $e->getMessage();
        }
    });
    

    访问该路由,直接查看返回信息和日志内容。

  4. 确认GoDaddy主机限制

    • 联系GoDaddy确认主机的本地SMTP服务(localhost:25)是否正常运行,部分共享主机可能默认禁用或限制端口25。
    • 检查你的Google Workspace域名domain.com的SPF记录,是否包含GoDaddy主机的IP地址。若SPF记录未授权该IP发送邮件,Google会直接拒收(可能进入垃圾箱或被拦截)。
  5. 验证发件地址权限
    GoDaddy的本地SMTP可能要求发件地址是主机上创建的邮箱(而非外部Google Workspace邮箱),若属于这种情况,你需要将MAIL_FROM_ADDRESS改为GoDaddy主机上的邮箱,或联系GoDaddy申请允许中继外部域名的发件地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:52:11