2013-12-13 93 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