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

Laravel 5.6配置Mailtrap无法接收邮件问题求助

解决Laravel 5.6配置Mailtrap后无法接收密码重置邮件的问题

我之前在Laravel项目里也碰到过一模一样的情况——Auth系统显示密码重置成功,但Mailtrap收件箱始终空空如也,给你整理几个靠谱的排查步骤,一步步来应该能搞定:

一、先把Mailtrap的核心配置核对准确

首先得确保你的.env里的邮件配置完整且正确,别漏了关键项:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=你的Mailtrap专属用户名(在控制台Credentials板块查找)
MAIL_PASSWORD=你的Mailtrap专属密码(同上,不是你注册Mailtrap用的邮箱密码!)
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your-app@example.com
MAIL_FROM_NAME="${APP_NAME}"

划重点:Mailtrap的用户名和密码是平台提供的专属凭证,别和个人邮箱账号搞混了!

二、彻底清理配置缓存(别只清一半)

虽然你已经执行过缓存命令,但有时候顺序不对或者没清全,建议按这个顺序执行:

php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear

记住:每次修改.env之后,一定要先跑config:clear,如果先执行了config:cache,新的.env配置会被缓存的静态文件覆盖,根本不会生效!

三、扒拉Laravel日志找线索

Laravel的日志文件在storage/logs/laravel.log,打开后搜索mail或者password_reset关键词,看看有没有发送失败的报错信息——比如认证失败、端口不对、发件地址格式错误这些,日志里都会写得明明白白,比瞎猜管用多了。

四、绕开Auth系统,直接测试邮件发送

有时候可能是密码重置逻辑的小问题,先写个简单的测试路由,直接发一封邮件,排除Auth的影响:

// 在routes/web.php里添加这段代码
Route::get('/test-mail', function () {
    Mail::raw('这是一封测试邮件', function ($message) {
        $message->to('test@example.com')->subject('测试Mailtrap连接');
    });
    return '邮件已尝试发送,去Mailtrap看看吧!';
});

访问这个路由,然后去Mailtrap收件箱查看,如果还是收不到,就看日志找问题;如果收到了,那问题可能出在Auth的密码重置配置里(比如邮件模板、收件人逻辑)。

五、检查Mailtrap本身的设置

  • 确认你在Mailtrap里打开的是对应项目的Inboxes,别不小心进了其他测试收件箱
  • 看看Mailtrap的Filters设置,有没有把邮件过滤掉了

六、如果开了队列,别忘了启动worker

如果你的.env里QUEUE_DRIVER不是sync,邮件会被放进队列而不是立即发送,这时候得启动队列worker才能处理:

php artisan queue:work

测试阶段建议先把QUEUE_DRIVER改成sync,确认邮件能正常发送后再配置队列逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:47:32