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

Laravel 8.77.1发送邮件遇Swift_TransportException错误求助

Laravel 8.77.1 SMTP连接错误(Swift_TransportException)排查方案
  • 核对.env邮件配置
    打开项目根目录的.env文件,确认SMTP相关配置无拼写错误,重点检查主机地址、端口、账号密码:

    MAIL_MAILER=smtp
    MAIL_HOST=mail.mydomain_name.com
    MAIL_PORT=465
    MAIL_USERNAME=你的邮箱账号@mydomain_name.com
    MAIL_PASSWORD=你的邮箱密码
    MAIL_ENCRYPTION=ssl
    MAIL_FROM_ADDRESS=你的邮箱账号@mydomain_name.com
    MAIL_FROM_NAME="${APP_NAME}"
    

    修改后执行php artisan config:cache刷新配置缓存,确保新配置生效。

  • 测试服务器网络连通性
    登录应用服务器,用命令测试能否连接目标SMTP的465端口:
    使用telnet:telnet mail.mydomain_name.com 465
    或curl:curl -v ssl://mail.mydomain_name.com:465
    若连接失败,大概率是服务器防火墙/安全组封禁了465端口出站请求,或是邮件服务商未开放该端口,需联系对应管理员确认。

  • 排查SSL证书问题
    若邮件服务器SSL证书不被应用服务器信任,会触发连接错误。可临时关闭证书验证(仅用于测试,生产环境禁用):
    打开config/mail.php,在smtp配置项中添加stream参数:

    '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' => [
            'ssl' => [
                'allow_self_signed' => true,
                'verify_peer' => false,
                'verify_peer_name' => false,
            ],
        ],
    ],
    

    若测试能正常发邮件,说明是证书问题,需给服务器安装信任证书,或联系邮件服务商获取合法证书。

  • 更换端口或驱动尝试
    多数邮件服务商支持587端口+TLS加密,可修改.env中MAIL_PORT=587、MAIL_ENCRYPTION=tls后重新测试。
    若服务器本地有sendmail服务,也可将MAIL_MAILER改为sendmail,绕开SMTP连接问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:30:56