Laravel 9重置密码报错:预期响应码250却收到空码
Laravel 9密码重置邮件报错:Expected the response code "250" but got an empty code
问题场景
使用Laravel 9框架结合Breeze搭建登录注册功能,配置Mailtrap账户的SMTP参数后,执行密码重置操作时出现以下报错:
Expected the response code "250" but got an empty code
已尝试修改端口,问题仍未解决。当前.env中的SMTP配置如下:
MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=6ef08e9eb5cfd4 MAIL_PASSWORD=0c593bdbaed36f MAIL_ENCRYPTION=tls
解决方案
清除配置缓存
Laravel会缓存.env配置,修改参数后必须清除缓存才能生效,执行以下命令:php artisan config:clearphp artisan cache:clear验证Mailtrap凭证准确性
登录Mailtrap后台核对SMTP用户名和密码,确保复制时没有带入空格、换行或特殊字符,手动重新输入一遍凭证信息。补充发件人配置
在.env中添加发件人地址和名称配置,缺失该信息可能导致SMTP请求被拒绝:
MAIL_FROM_ADDRESS=test@example.com MAIL_FROM_NAME="${APP_NAME}"
更换端口与加密方式组合
测试以下两种常见的SMTP配置组合,修改后记得清除缓存:- 端口465 + SSL加密:
MAIL_PORT=465 MAIL_ENCRYPTION=ssl - 端口25 + 无加密:
MAIL_PORT=25 MAIL_ENCRYPTION=null
- 端口465 + SSL加密:
直接测试邮件发送
创建测试路由验证邮件配置是否正常,排除密码重置逻辑的干扰:
Route::get('/test-mail', function () { Mail::raw('测试邮件内容', function ($message) { $message->to('your-test-email@example.com') ->subject('Laravel测试邮件'); }); return '邮件已发送,请查看Mailtrap收件箱'; });
访问该路由后,检查Mailtrap后台是否收到邮件。
- 检查服务器端口权限
如果部署在远程服务器上,确认服务器防火墙或安全组已开放使用的SMTP端口(2525、465、25),部分服务器会默认封禁邮件相关端口。
内容的提问来源于stack exchange,提问作者Omer Azazi
相关产品推荐
相关产品推荐

