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

PHPMailer部署到cPanel后无法连接smtp.gmail.com求助

解决cPanel主机上PHPMailer连接Gmail SMTP的网络不可达问题

针对你在cPanel主机上使用PHPMailer发送邮件时出现的SMTP ERROR: Failed to connect to server: Network is unreachable (101)错误,结合本地正常、cPanel异常的情况,给你以下排查和解决建议:

  • 检查cPanel主机的SMTP出站限制
    多数cPanel主机商会默认封禁外部SMTP端口(如465、587),强制用户使用主机自带的邮件服务器。你可以:

    • 联系主机服务商确认是否开启了SMTP出站拦截;
    • 改用主机本地SMTP服务,配置示例:
      $mail->Host = 'localhost';
      $mail->SMTPAuth = false; // 部分本地SMTP无需认证
      $mail->SMTPSecure = '';
      $mail->Port = 25;
      
  • 验证Gmail账户的安全权限
    即使本地正常,cPanel的服务器IP可能触发Gmail的安全策略:

    • 若账户开启了两步验证,必须使用应用专用密码替代原密码;
    • 若未开启两步验证,确保在Google账户设置中开启了“不太安全的应用访问”(注意:该选项仅对旧版Gmail账户开放);
    • 登录Google账户查看安全日志,确认是否有来自cPanel主机IP的登录拦截,若有则手动允许该IP访问。
  • 开启PHPMailer调试模式定位问题
    增加调试代码获取详细连接日志,能帮你精准判断是DNS解析失败、端口阻断还是认证问题:

    $mail->SMTPDebug = SMTP::DEBUG_SERVER; // 开启调试,会输出完整SMTP交互过程
    

    根据调试信息再针对性处理,比如DNS解析失败就换用Gmail SMTP的IP地址(173.194.69.108)作为Host。

  • 调整加密方式与端口的组合
    部分主机对SSL(465端口)的限制更严格,改用TLS加密+587端口试试:

    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port = 587;
    
  • 检查PHP环境的必要扩展
    在cPanel的PHP设置界面,确认:

    • openssl扩展已启用(SMTP加密依赖该扩展);
    • allow_url_fopen设置为On(部分环境下需要该选项支持远程连接)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:45:32