2013-12-13 74 views
2

我试图使用PHPMailer的受管服务器上(我只有通过的cPanel访问),和我得到这个错误:的PHPMailer:SMTP错误:EHLO命令失败

SERVER -> CLIENT: 
CLIENT -> SERVER: EHLO stefanomenci.com 
SERVER -> CLIENT: HTTP/1.1 301 Moved 
[...] 
SMTP ERROR: EHLO command failed: HTTP/1.1 301 Moved 

这是脚本:

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 = "[email protected]"; 
$mail->Password = "****"; 
$mail->From = "[email protected]"; 
$mail->FromName = "Name"; 
$mail->AddAddress("[email protected]"); 
$mail->WordWrap = 50; 
$mail->IsHTML(true); 
$mail->Subject = "Subject"; 
$mail->Body = "y<b>a</b>y"; 
$mail->AltBody = "yay"; 
$mail->Send(); 

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

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

如果端口正确,则等待10秒钟并显示上面显示的错误,而不管用户名和密码是否正确。

删除$mail->IsSMTP()的作品,但往往电子邮件直接进入垃圾邮件文件夹。

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

+0

提到你的smtp主机,这是类似mail.mydomain.com而不是主机上的mydomain.com –

+0

使用主机提供商或目标SMTP服务器在文档中任意位置指定的端口2096? –

+0

有或没​​有'mail.'返回相同的错误。 'SMTP错误:无法连接到服务器:php_network_getaddresses:getaddrinfo失败:名称或服务未知(0) SMTP connect()failed.' – stenci

回答

2

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

+0

我标记为答案,因为端口和域名是错误的。我在cPanel中找到了邮件配置的说明,域名是mail.mydomain.com,端口是26.按照说明,主题中的错误发生了变化(这就是为什么我将此设置为答案),但它仍然不能连接与其他错误消息。我仍在调查,而且我最终会以另一个主题提出另一个问题。 – stenci