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

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:clear
    php 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
      
  • 直接测试邮件发送
    创建测试路由验证邮件配置是否正常,排除密码重置逻辑的干扰:

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:15:32