必须将app_env=production且app_debug=false,否则密码重置链接生成为http而非https导致404;需执行config:clear与config:cache生效,并改用smtp驱动,mail_username与mail_from_address须一致,app_key须artisan生成。

.env 中 APP_ENV 和 APP_DEBUG 必须匹配生产环境
部署到 cPanel 或其他生产服务器后,如果 APP_ENV=local 或 APP_DEBUG=true,Laravel 会跳过部分生产级校验(比如邮箱验证、URL 协议强制 HTTPS),导致密码重置链接生成为 http:// 而非 https://,点击后 404 或跳转失败。
必须改为:
APP_ENV=productionAPP_DEBUG=false
改完立刻执行 php artisan config:clear 和 php artisan config:cache,否则修改不生效。
MAIL_DRIVER 不要用 mail,必须用 smtp
cPanel 共享主机默认禁用 PHP 的 mail() 函数,且无日志、不可调试。用 MAIL_DRIVER=mail 表面无报错,实际邮件根本没发出去。
正确配置应为:
PHP中文网提供Laravel 13.2.0版本下载,Laravel框架 是基于 PHP 8.3+ 的高性能框架,官方推荐通过 Composer 安装。它内置 AI SDK、JSON:API Resources 及原生向量搜索,支持属性驱动开发与队列路由,大幅提升开发效率。相比旧版,13.2.0 优化了缓存 TTL 管理与实时通信,无需 Redis 即可横向扩展。作为现代 Web 开发首选,它兼顾安全与极速体验,助您快速构建企业级应用。
MAIL_DRIVER=smtp-
MAIL_HOST=mail.yourdomain.com(不是域名本身,也不是 localhost) -
MAIL_PORT=465(SSL)或587(TLS),二者不能混用 -
MAIL_USERNAME=admin@yourdomain.com(去掉双引号!引号会被当字符传入认证) -
MAIL_PASSWORD=your_app_password(若邮箱开启两步验证,必须用「应用专用密码」) -
MAIL_ENCRYPTION=ssl(小写,不是SSL或tls)
注意:MAIL_FROM_ADDRESS 必须和 MAIL_USERNAME 一致,否则部分邮件服务商(如 Gmail、Outlook)直接拒收。
时区、数据库字符集、密钥三处易漏配置
这三项不显眼,但上线后常引发隐性故障:
-
config/app.php中的'timezone' => 'Asia/Shanghai':不设会导致 Carbon 解析时间出错,重置链接过期时间计算偏差 - MySQL 低于 5.7.7 时,迁移会报
Specified key was too long:需在AppServiceProvider::boot()中加Schema::defaultStringLength(191) -
APP_KEY必须通过php artisan key:generate生成并写入.env;手动复制粘贴容易多空格或换行,导致加密失败、session 丢失
SMTP 连通性要人工验证,不能只信日志
Laravel 默认不抛出 SMTP 连接异常(尤其 APP_DEBUG=false 时),错误静默吞掉。仅靠查看 storage/logs/laravel.log 可能看不到真实原因。
推荐用 Tinker 直连测试:
php artisan tinker
>>> use Illuminate\Support\Facades\Mail;
>>> Mail::raw('test', function ($m) { $m->to('you@gmail.com')->subject('SMTP OK'); });
如果报 Connection could not be established with host 或 Authentication failed,说明问题在 DNS、端口屏蔽、凭据错误或 SPF 记录缺失——这些都得去 cPanel 邮箱后台和域名 DNS 后台查,不是改 Laravel 代码能解决的。










