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

Laravel项目共享主机生产环境遭遇Swift_TransportException无法连接Gmail SMTP发送邮件的问题求助

Laravel Gmail SMTP 生产环境(cPanel共享主机)发送失败解决方案

我之前在cPanel共享主机上部署Laravel项目时,也碰到过和你一模一样的Gmail SMTP连接问题,结合你的报错信息和环境配置,给你几个实测有效的排查和解决方向:

1. 优先排查共享主机的端口限制

共享主机服务商经常会封锁587、465这类常用SMTP端口来防止垃圾邮件,这是最常见的原因。

  • 直接联系你的主机商确认smtp.gmail.com的587/465端口是否允许出站连接
  • 如果端口被封,建议改用cPanel自带的邮件服务(比如用主机提供的域名邮箱),这种方式不需要依赖外部SMTP,稳定性更高

2. 替换为Gmail APP密码(替代低安全应用权限)

Google目前已经逐步淘汰了"低安全应用权限"的支持,即使你开启了这个选项,也可能无法正常连接。更可靠的方式是使用APP密码:

  1. 给你的Google账号开启两步验证
  2. 进入Google账号的「安全」页面,找到「应用密码」选项(只有开启两步验证后才会显示)
  3. 生成一个专门用于Laravel项目的应用密码
  4. 修改.env文件中的MAIL_PASSWORD为这个应用密码,注意去掉密码前后的引号(引号可能导致Laravel解析密码错误)

3. 检查PHP环境配置

确保你的共享主机PHP环境满足SMTP连接的要求:

  • 登录cPanel,查看PHP信息(phpinfo),确认openssl扩展已启用(TLS/SSL连接必须依赖这个扩展)
  • 检查php.ini中的disable_functions列表,确认stream_socket_client函数没有被禁用(该函数是Laravel发送邮件的核心函数),如果被禁用,联系主机商解除限制

4. 清除Laravel配置缓存

生产环境下Laravel会缓存配置文件,你修改.env后必须执行以下命令更新缓存:

php artisan config:clear
php artisan config:cache

如果不执行这一步,Laravel会一直使用旧的配置,导致修改无法生效。

5. 尝试调整SMTP配置组合

如果以上方法都不行,可以试试调整.env中的配置:

  • 切换加密方式和端口:MAIL_ENCRYPTION=ssl + MAIL_PORT=465,或者MAIL_ENCRYPTION=tls + MAIL_PORT=25(部分主机开放25端口)
  • 尝试使用Gmail的中继服务器:MAIL_HOST=smtp-relay.gmail.com(需要提前在Google Workspace中配置允许你的服务器IP发送)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 15:28:10