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

Laravel中Gmail SMTP本地正常但Cpanel部署后认证失败求助

解决Laravel Gmail SMTP在Cpanel部署后认证失败(535错误)的额外思路

以下是排除常见配置问题后的进一步排查方向:

  • 重新生成并核对应用密码
    确保生成应用密码时选择的是「邮件」或「其他(自定义名称)」类型,复制密码时不要带任何空格或换行。有时候谷歌的应用密码会因为账号安全策略更新失效,重新生成一个新的替换到.env里试试。

  • 检查Laravel配置缓存与硬编码覆盖
    部署后执行php artisan config:cache和php artisan cache:clear,避免旧配置缓存导致的问题。同时检查config/mail.php文件,确认没有硬编码的SMTP参数覆盖.env的设置(比如password字段是否直接写死,而不是引用env('MAIL_PASSWORD'))。

  • 验证Cpanel服务器的出站端口连通性
    在Cpanel终端中执行命令测试587端口是否能连接到Gmail:

    nc -zv smtp.gmail.com 587
    

    如果返回连接失败,说明服务器网络层面被封了该端口,即使主机商说没限制,也需要再确认WHM防火墙或机房的出站规则。

  • 排查谷歌账号的安全拦截
    登录谷歌账号的「安全中心」,查看最近的登录记录,是否有Cpanel服务器IP被标记为异常登录并拦截。如果有,点击「允许此登录」或解除拦截。另外,确认账号没有触发谷歌的邮件发送限制(比如近期发送大量邮件被标记为垃圾邮件)。

  • 更换SMTP端口与加密方式
    修改.env配置为465端口+SSL加密:

    MAIL_PORT=465
    MAIL_ENCRYPTION=ssl
    

    保存后清理缓存,测试是否能正常发送。部分服务器对587端口的TLS支持存在兼容性问题,换端口可能解决。

  • 检查.env文件的格式问题
    确认.env中MAIL_PASSWORD等参数前后没有多余空格,比如不要写成MAIL_PASSWORD= smuacrrfmlrlqgsp(前面有空格),这种细微的格式错误会导致认证失败。

  • 绕过Laravel直接测试SMTP连接
    在Cpanel终端用swaks工具直接测试Gmail SMTP:

    swaks --to your-test-email@example.com --from email@gmail.com --server smtp.gmail.com --port 587 --auth LOGIN --auth-user email@gmail.com --auth-password smuacrrfmlrlqgsp --tls
    

    如果这个命令也失败,说明问题出在服务器或谷歌账号,和Laravel无关;如果成功,再排查Laravel的邮件配置或代码逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:27:14