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

Laravel 5.4重置密码时出现Swift_TransportException连接错误求助

解决Laravel 5.4中Mailtrap连接失败的Swift_TransportException问题

嘿,我来帮你排查这个Laravel 5.4重置密码时Mailtrap连接失败的问题!这种情况我碰到过好几次,咱们一步步来解决:

  • 先确认.env配置的细节

    • 仔细检查MAIL_USERNAME和MAIL_PASSWORD是不是从Mailtrap控制台复制的完整正确值,有时候复制时会不小心带空格或者漏字符,这是最常见的坑
    • 把MAIL_ENCRYPTION=null改成MAIL_ENCRYPTION=tls试试,Laravel 5.4对加密的处理比较严格,2525端口配合TLS是Mailtrap推荐的配置
    • 保存.env后,务必执行这两个命令清空配置缓存:
      php artisan config:clear
      php artisan cache:clear
      
      不然Laravel可能还在使用旧的缓存配置,白改了!
  • 排查网络层面的问题

    • 先在本地终端或服务器上ping一下Mailtrap的服务器,确认网络连通性:
      ping smtp.mailtrap.io
      
      如果ping不通,那大概率是本地防火墙、杀毒软件,或者服务器安全组/防火墙把2525端口的出口给挡住了,得去开放这个端口
    • 也可以用telnet测试端口是否能正常连接:
      telnet smtp.mailtrap.io 2525
      
      要是连不上,直接找网络管理员或者云服务商调整防火墙规则就行
  • 检查Laravel的mail配置文件

    • 打开config/mail.php,确认里面的配置都是从.env读取的,比如:
      'driver' => env('MAIL_DRIVER', 'smtp'),
      'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
      'port' => env('MAIL_PORT', 587),
      
      别直接把值写死在配置文件里,不然.env的修改不会生效
    • 可以在smtp配置里加上stream选项,解决SSL验证的问题:
      'smtp' => [
          'driver' => 'smtp',
          'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
          'port' => env('MAIL_PORT', 587),
          'encryption' => env('MAIL_ENCRYPTION', 'tls'),
          'username' => env('MAIL_USERNAME'),
          'password' => env('MAIL_PASSWORD'),
          'stream' => [
              'ssl' => [
                  'allow_self_signed' => true,
                  'verify_peer' => false,
                  'verify_peer_name' => false,
              ],
          ],
      ],
      
      这能避免本地环境对Mailtrap证书的误判
  • 换个端口试试

    • Mailtrap还支持465(SSL)和587(TLS)端口,试试把MAIL_PORT改成587,MAIL_ENCRYPTION设为tls;或者端口用465,加密设为ssl,说不定能绕开当前端口的限制
  • 写个简单测试验证

    • 在routes/web.php里加个测试路由,直接发送邮件看报错详情:
      Route::get('/test-mail', function() {
          try {
              Mail::raw('这是一封测试邮件', function($message) {
                  $message->to('your-test-email@example.com')->subject('测试Mailtrap连接');
              });
              return '邮件发送请求已提交';
          } catch (\Exception $e) {
              return '错误详情:' . $e->getMessage();
          }
      });
      
      访问这个路由,能得到更精准的错误信息,方便进一步排查

内容的提问来源于stack exchange,提问作者Mujahidur Rahman Mithun IUB

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:18:05