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

Laravel电商网站邮件功能报错:无法建立SMTP连接

解决SMTP主机解析错误及Gmail邮件发送配置问题

看起来你的核心问题是系统试图连接smtp.marketing4growth.com这个不存在的主机,但你的.env配置里明明写的是Gmail的SMTP服务器,这说明你的配置没有被正确读取,或者还有其他配置错误导致了这个问题。下面一步步帮你排查修复:

1. 修正.env里的Gmail SMTP配置错误

你的.env配置有几个明显的问题,这会直接导致邮件发送失败:

  • 端口错误:Gmail SMTP的正确端口是587(TLS加密)或465(SSL加密),80是HTTP端口,完全不适用SMTP服务。
  • 用户名错误:Gmail的SMTP用户名需要是完整的邮箱地址,不是aleksanderhowell,应该是aleksanderhowell@gmail.com。
  • 加密方式错误:MAIL_ENCRYPTION不能设为null,对应587端口用tls,对应465端口用ssl。
  • 密码问题:如果你的Gmail账号开启了两步验证,必须使用应用专用密码,而非日常登录的密码;如果没开两步验证,需要确保账号允许“不太安全的应用访问”(不过Google现在更推荐用应用专用密码)。

修正后的.env配置示例:

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=aleksanderhowell@gmail.com
MAIL_PASSWORD=你的应用专用密码(或允许访问的密码)
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=tanz61791@gmail.com
MAIL_FROM_NAME="${APP_NAME}"

2. 清除配置缓存,确保.env生效

Laravel会缓存配置文件,如果你之前修改过配置但没清除缓存,旧的配置可能还在生效。运行以下命令更新缓存:

php artisan config:clear
php artisan cache:clear

3. 检查代码中是否硬编码了错误的SMTP主机

仔细检查你的邮件相关代码(比如SendMail.php或其他配置文件),看有没有地方直接指定了smtp.marketing4growth.com这个主机。如果有,替换成.env里的配置,或者用env('MAIL_HOST')来动态读取配置。

另外,你的SendMail.php里的from地址可以改为读取.env配置,这样更灵活易维护:

public function build() {
    return $this->from(env('MAIL_FROM_ADDRESS'))
                ->subject('New Customer Enquiry')
                ->view('dynamic_email')
                ->with('data', $this->data);
}

4. 验证服务器的DNS解析能力

如果上述步骤都完成后还是出现主机解析错误,检查你的服务器是否能正常解析smtp.gmail.com:
运行ping smtp.gmail.com或者nslookup smtp.gmail.com,如果解析失败,说明服务器的DNS配置有问题,需要联系服务器提供商调整DNS设置。

5. 测试邮件发送

完成所有修正后,重新测试表单提交,看是否能成功发送邮件。如果还是有问题,查看Laravel的日志文件(storage/logs/laravel.log),里面会有更详细的错误信息,帮助进一步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:17:28