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

cPanel服务器Laravel Gmail SMTP超时与SSL错误求助(本地正常)

Laravel在cPanel服务器使用Gmail SMTP发送邮件的超时与SSL证书问题

在cPanel服务器上通过Laravel的Mail门面使用Gmail SMTP发送邮件时,本地配置正常,但服务器端出现两类问题:

  • 连接Gmail SMTP服务器时触发超时错误
  • SSL证书验证失败

已确认基础连通性正常(端口测试71ms建立连接、OpenSSL TLS协商成功、服务器可访问Gmail SMTP服务器),并尝试过以下配置方案,但问题仍未解决:

  • 切换SSL(465)与TLS(587)端口
  • 调整加密方式(SSL/TLS)
  • 修改各类SSL验证设置
  • 更换SMTP主机(smtp.gmail.com与smtp-relay.gmail.com)
  • 调整超时值
  • 尝试不同认证模式

环境信息

  • Laravel版本:11.34.2
  • PHP版本:8.2.25
  • 服务器:cPanel
  • 邮件服务:Gmail SMTP

本地可用配置

'smtp' => [
            'transport' => 'smtp',
            'url' => null,
            'host' => 'smtp.gmail.com',
            'port' => 587,
            'encryption' => 'tsl',
            'username' => 'myemail@gmail.com',
            'password' => "app-password",
            'timeout' => null,
        ],

错误1 - 超时

错误信息

Error sending: SMTP Error: Could not connect to SMTP host.

使用的配置

'smtp' => [
    'transport' => 'smtp',
    'host' => 'smtp.gmail.com',
    'port' => 465,
    'encryption' => 'ssl',
    'username' => 'myemail@gmail.com',
    'password' => 'app-password',
    'timeout' => 5,
    'stream_options' => [
        'ssl' => [
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true,
        ]
    ]
],

错误2 - SSL证书验证失败

错误信息

Error sending: SMTP Error: Could not connect to SMTP host. 
Connection failed. stream_socket_enable_crypto(): SSL operation failed with code 1. 
OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed

使用的配置

'smtp' => [
    'transport' => 'smtp',
    'host' => 'smtp-relay.gmail.com',
    'port' => 587,              
    'encryption' => 'tls',          
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'timeout' => 5,
    'auth_mode' => 'PLAIN',
    'stream_options' => [
        'tcp' => [
            'tcp_nodelay' => true,
        ],
        'ssl' => [
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true,
            'SNI_enabled' => true,
        ]
    ]
],

已执行的验证操作

  1. 端口测试连接成功:
$ time nc -zv -w 5 smtp.gmail.com 465
Connection to smtp.gmail.com 465 port [tcp/submissions] succeeded!
real    0m0.071s
  1. OpenSSL测试TLS协商成功:
$ openssl s_client -connect smtp.gmail.com:465
...
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
...
220-smtp.gmail.com ESMTP ready
  1. 验证Exim设置:
$ sudo exim -bP accept_8bitmime
accept_8bitmime
$ sudo exim -bP smtp_accept_max_nonmail
smtp_accept_max_nonmail = 10
  1. 尝试过SSL(465)与TLS(587)端口
  2. 调整过不同超时值
  3. 验证过Gmail应用密码与2FA设置
  4. 添加过各类SSL/TLS配置与证书验证设置
  5. 尝试使用smtp-relay.gmail.com

连接测试均成功,但Laravel邮件发送器持续超时。快速的netcat连接(71ms)表明问题可能出在SSL握手或SMTP认证阶段,目前尚未解决。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 14:05:00