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

在BlueHost VPS使用PHPMailer+Gmail SMTP时无法连接SMTP主机

解决BlueHost VPS上PHPMailer连接Gmail SMTP失败的问题

先修正代码中的核心配置错误

你的代码存在端口与加密方式不匹配的问题:

  • 端口587对应STARTTLS加密,需使用PHPMailer::ENCRYPTION_STARTTLS,而非PHPMailer::ENCRYPTION_SMTPS(该加密方式对应端口465)。

修正后的核心配置代码:

//Server settings
$mail->SMTPDebug = SMTP::DEBUG_SERVER; //保留调试输出,方便后续排查
$mail->SMTPAuth = true;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; //匹配587端口的加密规则
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;          
$mail->Username   = 'me@gmail.com';
$mail->Password   = '***app password***'; //确保此应用专用密码为两步验证开启后生成的有效密码

若改用465端口,对应配置调整为:

$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port = 465;

排查BlueHost VPS的环境限制

  • 出站端口权限:BlueHost部分VPS可能限制出站SMTP连接,虽然587、465端口通常开放,但若仍无法连接,需联系BlueHost客服确认是否允许访问smtp.gmail.com的对应端口。
  • PHP扩展检查:确保服务器PHP已启用openssl扩展(TLS加密依赖该扩展)。可创建phpinfo.php文件查看状态:
<?php phpinfo(); ?>

访问该文件后搜索openssl,确认OpenSSL support显示为enabled。

  • 证书链问题:部分VPS根证书链不全,导致无法验证Gmail的SSL证书。可临时添加以下配置跳过验证(仅作临时排查用,长期建议修复服务器证书链):
$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
);

额外验证项

  • 确认Google账户已开启两步验证,应用专用密码是在两步验证启用后生成的(未开启两步验证无法生成有效应用专用密码)。
  • 检查服务器防火墙/安全组是否允许出站连接到smtp.gmail.com的587或465端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:10:19