PhpMailer:SMTP 错误:EHLO 命令失败

ste*_*nci 4 php email smtp phpmailer

我正在尝试在托管服务器上使用 PhpMailer(我只能通过 cPanel 访问),但出现此错误:

SERVER -> CLIENT:
CLIENT -> SERVER: EHLO stefanomenci.com
SERVER -> CLIENT: HTTP/1.1 301 Moved
 [...]
SMTP ERROR: EHLO command failed: HTTP/1.1 301 Moved
Run Code Online (Sandbox Code Playgroud)

这是脚本:

require ("/path/to/class.phpmailer.php");
$mail = new PHPMailer();
$mail->SMTPDebug = 2;
$mail->IsSMTP();
$mail->Host = "mydomain.com";
$mail->Port = 2096;
$mail->SMTPAuth = true;
$mail->Username = "name@mydomain.com";
$mail->Password = "****";
$mail->From = "name@mydomain.com";
$mail->FromName = "Name";
$mail->AddAddress("myaddress@gmail.com");
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = "Subject";
$mail->Body = "y<b>a</b>y";
$mail->AltBody = "yay";
$mail->Send();
Run Code Online (Sandbox Code Playgroud)

如果端口错误,它会立即失败并显示“无法连接到服务器”。

如果端口丢失,它会显示“请在您的邮件客户端中打开 SMTP 身份验证,或在发送邮件之前登录到服务器”。

如果端口正确,它将等待 10 秒并显示如上所示的错误,无论用户名和密码是否正确。

删除$mail->IsSMTP()有效,但电子邮件通常会直接进入垃圾邮件文件夹。

我发现了很多关于 PhpMailer 类似问题的帖子,但他们通常使用 Google 而不是 mydomain.com 并且他们从来没有这个错误消息。

小智 5

如上所述使用端口 25 或 465。正如我们在连接中看到的那样,端口 2096 正在运行一个网络服务器(SERVER -> CLIENT: HTTP/1.1 301 Moved)。