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

cPanel托管的Laravel项目Google SMTP无法连接问题

解决Laravel部署到cPanel后SMTP证书不匹配问题

问题分析

本地环境SMTP运行正常,部署到cPanel后出现证书CN不匹配错误:

Connection could not be established with host "ssl://smtp.gmail.com:465": stream_socket_client(): Peer certificate CN=server9.hostingbangladesh.com' did not match expected CN=smtp.gmail.com'

错误中显示连接使用的是ssl://smtp.gmail.com:465,但你的.env配置的是MAIL_PORT=587和MAIL_ENCRYPTION=tls,说明实际连接参数与配置不符,大概率是配置缓存未清除,或cPanel服务器存在SMTP拦截/代理机制。

解决步骤

  • 清除Laravel配置缓存
    登录cPanel终端,执行以下命令刷新配置:

    php artisan config:clear
    php artisan cache:clear
    php artisan config:cache
    

    部署后缓存会保留旧配置,必须清除才能加载新的.env设置。

  • 检查cPanel托管商限制
    部分托管商会强制拦截外部SMTP请求,或替换为自身邮件服务器,导致证书不匹配。联系托管商确认:

    • 是否开放587/465端口
    • 是否允许使用第三方SMTP服务(如Gmail)
    • 是否存在SSL证书代理或拦截机制
  • 确认mail.php配置正确性
    打开config/mail.php,确保smtp驱动的配置与.env一致:

    'smtp' => [
        'transport' => 'smtp',
        'host' => env('MAIL_HOST', 'smtp.gmail.com'),
        'port' => env('MAIL_PORT', 587),
        'encryption' => env('MAIL_ENCRYPTION', 'tls'),
        'username' => env('MAIL_USERNAME'),
        'password' => env('MAIL_PASSWORD'),
        'timeout' => null,
        'auth_mode' => null,
    ],
    

    修改后再次执行缓存清除命令。

  • 临时禁用证书验证(仅测试用)
    如果托管商证书问题无法快速解决,可临时添加证书跳过验证(不推荐长期使用,存在安全风险):
    在smtp配置中添加stream参数:

    'smtp' => [
        // 原有配置...
        'stream' => [
            'ssl' => [
                'verify_peer' => false,
                'verify_peer_name' => false,
            ],
        ],
    ],
    

    测试正常后,务必联系托管商修复证书问题,恢复验证机制。

内容的提问来源于stack exchange,提问作者Abu Taher Muhammad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 16:50:05