2013-12-11 398 views
0

我需要幫助,請 這是我的代碼:的PHPMailer和Gmail SMTP錯誤:無法連接到服務器:網絡不可達(101)SMTP連接()失敗

require 'PHPMailerAutoload.php'; 
$mail = new PHPMailer; 
$mail->isSMTP(); 
$mail->Host = "smtp.gmail.com"; 
$mail->SMTPDebug = 2; 
$mail->SMTPAuth = true; 

$mail->SMTPSecure = "tls"; 
$mail->Port = 587; 

$mail->Username = '[email protected]'; 
$mail->Password = 'somepass'; 
$mail->addAddress('[email protected]', 'Josh Adams'); 
$mail->Subject = 'PHPMailer GMail SMTP test'; 
$body = 'This is the HTML message body in bold!'; 
$mail->MsgHTML($body); 
if (!$mail->send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    echo "Message sent!"; 
} 

,我得到這個錯誤: 2013-12-11 15:15:02 SMTP錯誤:無法連接到服務器:網絡無法訪問(101)SMTP連接()失敗。郵件程序錯誤:SMTP連接()失敗。

請幫忙嗎?

回答

5

您可能想從隔離這個問題開始,以確定它是否真的是網絡問題;或者它是否特定於PHP郵件程序或您的代碼。在服務器上,從命令提示符下,嘗試使用telnet連接到smtp.gmail.com端口587,就像這樣:

telnet smtp.gmail.com 587 

您應該看到smtp.gmail.com的響應,像這樣:

Trying 173.194.74.108... 
Connected to gmail-smtp-msa.l.google.com. 
Escape character is '^]'. 
220 mx.google.com ESMTP f19sm71757226qaq.12 - gsmtp 

您是否看到過這種情況,或者連接嘗試是否掛起並最終超時?如果連接失敗,則可能意味着您的託管公司阻止端口傳出SMTP連接587

-2

變化

$mail->SMTPSecure = "tls";

$mail->SMTPSecure = 'ssl';

相關問題