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

CodeIgniter3下PHPMailer使用SMTP在cPanel环境发信失败如何解决

问题解决方案
  • 首先排查cPanel出站端口限制
    绝大多数cPanel主机服务商默认会封禁587、465等第三方SMTP服务的出站端口,你可以先运行以下测试代码验证端口连通性:
    <?php
    $test = fsockopen('smtp.gmail.com', 587, $errno, $errstr, 10);
    if (!$test) {
        echo "端口不通,错误:$errstr ($errno)";
    } else {
        echo "端口连通正常";
        fclose($test);
    }
    ?>
    
    如果提示端口不通,直接联系主机商开放对应端口,或者改用你的cPanel账号下自建域名邮箱的SMTP服务(通常地址为smtp.你的域名,端口默认25无需额外申请)。
  • 修正Gmail账号授权配置
    目前Gmail已不再支持直接使用账号密码作为SMTP登录凭证,你需要先为Google账号开启两步验证,然后生成应用专用密码替换代码里的Password字段。另外服务器IP属于新的登录环境,你需要登录Google账号安全中心,确认是否有异地登录拦截提示,放行服务器IP的访问请求。
  • 补充PHPMailer兼容配置
    cPanel环境的SSL证书校验规则可能和本地环境不同,你可以在$mail->isSMTP();后增加以下配置,解决证书校验导致的连接失败问题:
    // 关闭自动TLS校验(按需开启)
    $mail->SMTPAutoTLS = false;
    // 配置SSL兼容选项
    $mail->SMTPOptions = array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true
        )
    );
    
  • 修正发件人配置错误
    你代码中的setFrom参数填写的是noreply.com,不符合邮箱格式规范,必须填写完整的发件人邮箱地址,且建议和SMTP登录的Gmail邮箱保持一致,避免被Gmail或cPanel发信规则拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 18:36:04