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

Laravel 8配置无域名/邮箱的SMTP账号发送邮件失败求助

Laravel 8 无发件域名SMTP账号配置问题解决方案

1. 修正核心配置错误

你的.env中MAIL_USERNAME填写的是s170749_0,但服务商提供的账号用户名是122797_5,这是导致认证失败的直接原因,先修正这个值:

MAIL_USERNAME=122797_5

2. 补充发件人地址配置

Laravel的Mail组件默认要求格式合法的发件人地址(即使服务商允许无域名),在.env中添加以下配置,可填写虚拟的合规地址:

MAIL_FROM_ADDRESS=noreply@example.com
MAIL_FROM_NAME=系统发件人

3. 调整端口与加密设置

25端口常被服务器防火墙拦截,建议更换为服务商提供的80端口,同时禁用加密(若服务商无加密要求):

MAIL_PORT=80
MAIL_ENCRYPTION=null

4. 清除配置缓存

Laravel会缓存.env配置,修改后需执行命令刷新缓存:

php artisan config:clear

5. 测试与排查

  • 测试SMTP连通性:在服务器终端执行以下命令,确认端口是否可访问:

    telnet fast.smtpok.com 80
    # 若telnet未安装,可使用nc命令
    nc -zv fast.smtpok.com 80
    

    若连接失败,说明端口被服务器防火墙或服务商拦截,需更换1025-5000范围内的其他端口尝试。

  • 发送测试邮件:添加临时路由快速测试:

    Route::get('/test-mail', function () {
        \Illuminate\Support\Facades\Mail::raw('测试邮件内容', function ($message) {
            $message->to('你的测试邮箱地址')
                    ->from(env('MAIL_FROM_ADDRESS'), env('MAIL_FROM_NAME'));
        });
        return '邮件请求已提交';
    });
    

    访问该路由后,查看storage/logs/laravel.log获取具体错误信息(如认证失败、连接超时等),根据日志进一步排查。

注意事项

若上述配置仍无法生效,需联系SMTP服务商确认:

  • 账号是否支持无发件域名/邮箱的发送方式
  • 允许的发件人地址格式
  • 是否需要额外的SMTP参数(如HELO/EHLO设置)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:57:33