Laravel UI重置密码:部署到cPanel后Gmail邮件无法接收问题
Laravel cPanel部署后Gmail密码重置邮件无法接收的排查与解决
一、修正.env配置中的错误
你的当前配置存在几个关键不匹配问题:
- 驱动与服务不匹配:使用Gmail SMTP服务时,
MAIL_DRIVER应改为smtp(Laravel 8及以上版本为MAIL_MAILER=smtp),而非sendmail。 - 端口与加密协议不匹配:587端口对应
MAIL_ENCRYPTION=tls,若要使用ssl需将端口改为465。 - 冗余引号与密码问题:
.env中无需给邮箱地址加引号,且Gmail不能直接用账号密码,需使用应用专用密码(需先开启两步验证)。
修正后的参考配置:
MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=你的gmail邮箱地址 MAIL_PASSWORD=你的应用专用密码 MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=你的gmail邮箱地址 MAIL_FROM_NAME="${APP_NAME}"
二、cPanel部署后的必要操作
- 清除配置缓存:部署完成后,通过cPanel的终端执行以下命令刷新配置:
php artisan config:clear php artisan config:cache - 检查端口出站权限:确认cPanel服务器的防火墙允许587(TLS)或465(SSL)端口出站,部分主机商会默认限制这些端口。
- 查看错误日志:打开
storage/logs/laravel.log文件,查找邮件发送失败的具体错误信息(如认证失败、连接超时等),这是定位问题的关键。
三、Gmail账号设置
- 开启两步验证:登录Gmail账号,在安全设置中开启两步验证,然后生成应用专用密码,将其填入
.env的MAIL_PASSWORD字段。 - 若无法开启两步验证,可尝试开启“不太安全的应用访问”(注:该功能已逐步被谷歌停用,仅部分旧账号支持,优先推荐应用专用密码)。
内容的提问来源于stack exchange,提问作者Rahmatullah Sadiqi
相关产品推荐
相关产品推荐

