
ovh 共享主机默认禁止外连第三方 smtp(如 gmail),必须改用 ovh 官方 smtp 服务(ssl0.ovh.net:465)并启用 ssl 认证,否则将报错“smtp connect() failed”。
在本地开发环境(如 XAMPP)中能成功发送邮件,不代表生产环境(尤其是 OVH 等共享主机)同样适用——关键原因在于:OVH 明确限制其共享主机对外部 SMTP 服务器(如 smtp.gmail.com、smtp.office365.com 等)的出站连接,这是出于反垃圾邮件策略和安全策略的强制要求。试图绕过该限制(例如更换端口、禁用 TLS/SSL 或使用代理)不仅无效,还可能触发 IP 封禁。
✅ 正确做法是:使用 OVH 提供的内置 SMTP 服务,其官方推荐配置如下:
require 'vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
$mail = new PHPMailer(true); // 启用异常抛出,便于调试
$mail->isSMTP();
$mail->Host = 'ssl0.ovh.net'; // OVH 官方 SMTP 主机(注意:不是 smtp.ovh.net)
$mail->Port = 465; // SSL 端口(不可用 587)
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl'; // 必须为 'ssl';'tls' 不支持
$mail->Username = 'yourname@yourdomain.ovh'; // OVH 邮箱账户(需已创建)
$mail->Password = 'your-ovh-mail-password'; // 对应邮箱的密码(非 OVH 控制面板密码)
// 发件人与收件人(From 地址必须与 Username 一致或为该域名下有效邮箱)
$mail->setFrom('yourname@yourdomain.ovh', 'Your Name');
$mail->addAddress('recipient@example.com', 'Recipient Name');
$mail->Subject = 'Test Email via OVH SMTP';
$mail->isHTML(true);
$mail->Body = 'TEST EMAIL
This email was sent using OVH SMTP.
';
try {
$mail->send();
echo '✅ Email sent successfully!';
} catch (Exception $e) {
echo "❌ Mailer Error: " . $mail->ErrorInfo;
}⚠️ 关键注意事项:
立即学习“PHP免费学习笔记(深入)”;
- Username 必须是已在 OVH Control Panel → Emails 中手动创建并激活的邮箱账户(例如 contact@yourdomain.ovh),不能直接使用 Gmail 或其他外部邮箱;
- Password 是该邮箱账户的独立密码(可在 OVH 面板重置),不是你的 OVH 账户登录密码;
- Host 必须为 ssl0.ovh.net(旧文档中偶见 smtp.ovh.net,但后者不支持共享主机认证);
- Port 和 SMTPSecure 必须严格匹配:465 + 'ssl'(若误配为 587 + 'tls',将连接超时);
- setFrom() 的邮箱地址必须与 Username 完全一致或属于同一域名下的已验证邮箱,否则会被 OVH 拒绝(SPF/DKIM 策略校验);
- 若使用子域名邮箱(如 admin@shop.yourdomain.ovh),请确保该邮箱已在 OVH 面板中创建。
? 补充建议:
首次部署前,请登录 OVH Manager → Web → Emails 检查邮箱状态是否为“Active”,并确认未开启“仅限 IMAP/POP3 访问”等限制选项。如仍失败,可临时启用 $mail->SMTPDebug = 2; 查看详细握手日志,进一步定位是认证失败、DNS 解析异常还是证书问题。
遵循以上配置,即可在 OVH 共享主机上稳定、合规地发送邮件。











