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

使用Mailtrap发送邮件失败:SMTP连接错误排查求助

解决Mailtrap SMTP连接报错问题

核心问题定位

报错里的“找不到套接字传输‘tsl’”是加密协议拼写错误导致的,同时配置文件存在语法问题,以下是分步解决方案:


  1. 修正加密协议拼写
    打开项目根目录的.env文件,将:
MAIL_ENCRYPTION=tsl

修改为:

MAIL_ENCRYPTION=tls

这是触发当前报错的直接原因,PHP不存在名为tsl的传输协议,正确的是tls。

  1. 清除Laravel配置缓存
    执行以下命令确保新配置生效:
php artisan config:clear
php artisan cache:clear
  1. 检查PHP OpenSSL扩展
  • 运行php -m命令,查看输出中是否包含openssl;
  • 如果没有,打开php.ini文件,取消注释extension=openssl(Windows环境),或者通过包管理器安装php-openssl扩展(Linux环境,如apt install php-openssl)。
  1. 修复config/mail.php的语法错误
    你提供的config/mail.php中,stream配置被错误嵌套在failover邮件器中,导致SMTP邮件器无法读取SSL相关配置。调整smtp邮件器的配置,将stream移入其中:
'mailers' => [
    'smtp' => [
        'transport' => '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'),
        'timeout' => null,
        'auth_mode' => null,
        // 新增stream配置到smtp邮件器
        'stream' => [
            'ssl' => [
                'allow_self_signed' => true,
                'verify_peer' => false,
                'verify_peer_name' => false,
            ],
        ],
    ],
    // 其他邮件器配置保持不变...
    'failover' => [
        'transport' => 'failover',
        'mailers' => [
            'smtp',
            'log',
        ],
        // 移除这里的stream配置
    ],
],
  1. 验证Mailtrap凭证
    确认.env中的MAIL_USERNAME和MAIL_PASSWORD与Mailtrap控制台提供的完全一致,避免复制时出现空格或字符缺失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:54:58