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

使用Hostinger免费企业邮箱SMTP发邮件报错SMTP connect() failed的解决方法

解决PHPMailer连接Hostinger SMTP服务器失败的问题

针对你遇到的SMTP connect() failed.错误,可从以下几个方面排查修复:

1. 修正端口与加密方式的匹配

Hostinger SMTP支持两种配置组合,原代码的465+SSL可能因环境证书问题失败,建议切换为更兼容的组合:

  • 将$mail->Port = '465';改为$mail->Port = 587;(使用整数类型,去掉引号)
  • 将$mail->SMTPSecure = 'ssl';改为$mail->SMTPSecure = 'tls';

2. 删除手动设置的Header代码

代码中手动赋值$mail->header的行为会破坏PHPMailer自动生成的标准邮件头,直接删除以下两行:

$mail->header='MIME-Version: 1.0' . "\r\n";
$mail->header.='Content-type: text/html; charset=UTF-8' . "\r\n";

你已经设置了$mail->IsHTML(true);,PHPMailer会自动添加正确的MIME头。

3. 验证账号与权限

  • 确认$mail->Username是Hostinger后台创建的完整邮箱地址,无拼写错误
  • 确认邮箱密码正确,注意大小写、特殊字符,若修改过密码需同步更新
  • 登录Hostinger后台的邮箱管理面板,确认SMTP服务处于开启状态

4. 检查服务器环境限制

  • 测试服务器是否能访问Hostinger SMTP端口:执行命令telnet smtp.hostinger.com 587,若无法连接,联系主机商开放对应端口
  • 检查PHP是否启用openssl扩展(SSL/TLS连接依赖此扩展),可通过phpinfo()查看状态

5. 更新PHPMailer版本

旧版PHPMailer存在SMTP兼容性bug,建议更新至最新稳定版,同时使用新版推荐的小写方法名(如isSMTP()替代IsSMTP(),send()替代Send())

修正后的完整代码示例

function send_email($receiver_email,$subject,$message)
{
    $mail = new PHPMailer;

    $mail->isSMTP();
    $mail->Host = 'smtp.hostinger.com';
    $mail->Port = 587;
    $mail->SMTPAuth = true;
    $mail->SMTPDebug = 2; // 生产环境建议改为0关闭调试
    $mail->Username = 'support@kachandarululoomnijamiamadrasah.org';
    $mail->Password = '你的邮箱密码';
    $mail->SMTPSecure = 'tls';
    $mail->From = 'support@kachandarululoomnijamiamadrasah.org';
    $mail->FromName = 'Kachan Darul Uloom Nijamia Madrasah';
    $mail->addAddress($receiver_email);
    $mail->isHTML(true);
    $mail->Subject = $subject;
    $mail->Body = $message;

    if($mail->send())
    {
        return true;
    }
    else
    {
        return $mail->ErrorInfo;
    }
}

内容的提问来源于stack exchange,提问作者Mamun All Rasid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:40:12