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

PHPMailer在本地正常运行但在OVH服务器上无法使用问题求助

SMTP connect() failed error when deploying PHPMailer code to OVH server (works locally on XAMPP/Windows)

我知道这个问题已经被多次提及,但我还没找到适配我自身情况的解决方案。

我的代码在Windows系统的XAMPP本地服务器上可以完美运行,但部署到OVH服务器后就出现了SMTP connect() failed错误。

以下是我的代码:

require 'vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'myEmailAddress@gmail.com';
$mail->Password = 'myPass';
$mail->Port = 587;
$mail->setFrom('myEmailAddress@gmail.com', 'Name Surname');
$mail->addAddress('myFriend@gmail.com', 'My Friend Mark');
$mail->Subject = 'Test';
$mail->isHTML(true);
$body = "<h1> TEST EMAIL </h1> <p> MY EMAIL IS AWESOME </p>";
$mail->Body = $body;
if($mail->send()){
    echo "SENT!";
}else{
    echo "Error ".$mail->ErrorInfo;
}

针对性排查与解决方案:

我碰到过不少用户在OVH服务器上部署PHPMailer时遇到这类连接失败问题,结合OVH的环境特性,给你几个具体的排查方向:

  • 检查OVH的端口限制:OVH默认可能会封锁587端口(或其他SMTP端口),你可以先尝试切换到465端口(SSL加密),修改代码如下:

    $mail->Port = 465;
    $mail->SMTPSecure = 'ssl';
    

    如果还是不行,直接联系OVH客服确认他们是否开放了SMTP相关端口。

  • 替换Gmail的登录密码为应用专用密码:Google现在对普通SMTP登录限制很严,如果你没开启两步验证,大概率会被拒绝。先开启Google账号的两步验证,然后创建一个应用专用密码,把代码里的myPass替换成这个专用密码。

  • 确认服务器的OpenSSL扩展是否启用:PHPMailer建立加密SMTP连接必须依赖OpenSSL扩展。你可以在OVH服务器上创建一个phpinfo.php文件,内容为<?php phpinfo(); ?>,访问后搜索“OpenSSL”,如果显示未启用,联系主机商开启或者自己修改php.ini配置。

  • 检查OVH防火墙规则:OVH服务器自带的硬件防火墙可能阻止了出站的SMTP请求。登录你的OVH控制面板,找到防火墙设置,确保允许向smtp.gmail.com的587或465端口发起出站连接。

  • 开启调试模式获取详细日志:在代码里添加一行$mail->SMTPDebug = 2;,这样会输出完整的SMTP连接过程日志,根据日志里的具体错误信息(比如DNS解析失败、SSL握手错误、认证被拒),就能精准定位问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 13:18:15