Laravel 5.8项目部署至服务器后SMTP邮件认证失败求助
Laravel 5.8 服务器端SMTP认证失败(535错误)排查方案
针对本地正常、服务器部署后出现的Gmail SMTP 535认证错误,按以下步骤排查:
移除.env中密码的单引号
你的MAIL_PASSWORD配置加了单引号,Laravel解析.env时会将引号视为密码的一部分,导致实际传递的密码错误。修改为:MAIL_PASSWORD=你的16位Gmail应用密码修改后在服务器执行命令刷新配置缓存:
php artisan config:clear php artisan config:cache确认Gmail应用密码有效性
- 确保你的Gmail账号已开启两步验证,应用密码仅对开启两步验证的账号有效
- 重新生成应用密码,生成时选择「邮件」作为应用类型,设备选「其他」,复制新生成的16位密码替换到.env中
- 检查是否有其他设备使用同一应用密码导致冲突,可生成新密码单独用于服务器
检查服务器网络与端口限制
- 测试服务器能否访问Gmail的SMTP端口:
如果465端口无法连通,尝试切换到587端口并使用TLS加密:# 测试465端口 telnet smtp.googlemail.com 465 # 或测试587端口(备选) telnet smtp.googlemail.com 587MAIL_PORT=587 MAIL_ENCRYPTION=tls - 部分服务器IP可能被Google标记为可疑,可临时更换为其他SMTP服务(如SendGrid)测试,或联系服务器提供商确认IP是否在Google的黑名单中
- 测试服务器能否访问Gmail的SMTP端口:
验证PHP扩展是否齐全
确保服务器PHP已安装openssl扩展(SSL/TLS加密依赖),执行命令检查:php -m | grep openssl若未找到,需安装或启用该扩展(具体操作根据服务器系统而定,如Ubuntu用
apt install php-openssl)查看Laravel日志细节
打开storage/logs/laravel.log查看完整错误日志,确认是否有其他隐藏问题(如端口不通、加密方式不匹配等)
内容的提问来源于stack exchange,提问作者eslam pntexpress
相关产品推荐
相关产品推荐

