2016-11-23 74 views
0

我試圖通過smtp.gmail.com與PHPMailer的插件發送郵件。發送在我的本地計算機上正常工作,但是當我使用下面的代碼使用我的遠程服務器時,它會延遲發送,通常約爲30秒。的PHPMailer不能發送通過smtp.gmail.com

function sendAuthEmail($subject, $mail_body, $mailTo, $mailToTitle, $mailFrom, $fromTitle) 
{ 
    require 'PhpMailer/PHPMailerAutoload.php'; 

    $mail = new PHPMailer(); 

    $mail->IsSMTP(); 
    $mail->SMTPAuth = true; 
    $mail->Host = 'smtp.gmail.com'; 
    $mail->Port = 587; 
    $mail->SMTPSecure = 'tls'; 

    $mail->Username = '[email protected]'; 
    $mail->Password = 'password'; 

    $mail->AddReplyTo($mailFrom, $fromTitle); 
    $mail->SetFrom($mail->Username, 'Domain.com'); 

    $mail->AddAddress($mailTo, $mailToTitle); 

    $mail->CharSet = 'UTF-8'; 
    $mail->Subject = $subject; 
    $mail->MsgHTML($mail_body); 

    if($mail->Send()) { 
     return; 
    } else { 
     die('There was an error: '.$mail->ErrorInfo.'</i>'); 
    } 
} 

但是,當我嘗試使用的gethostbyname(「smtp.gmail.com」),它失敗,以下調試信息:

2016-11-23 12:36:11 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP a47sm16079918qtc.17 - gsmtp 
2016-11-23 12:36:11 CLIENT -> SERVER: EHLO www.sellercloud.com 
2016-11-23 12:36:11 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [199.189.62.92] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 
2016-11-23 12:36:11 CLIENT -> SERVER: STARTTLS 
2016-11-23 12:36:11 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS 
2016-11-23 12:36:11 SMTP Error: Could not connect to SMTP host. 
2016-11-23 12:36:11 CLIENT -> SERVER: QUIT 
2016-11-23 12:36:11 SERVER -> CLIENT: 
2016-11-23 12:36:11 SMTP ERROR: QUIT command failed: 
2016-11-23 12:36:11 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting 
+0

http://stackoverflow.com/a/40457245/3597276 –

+0

@michael_b我記得嘗試這個,但我會再次檢查 –

+0

@Michael_B我再次嘗試。它適用於localhost,但不適用於遠程服務器... –

回答

0

與原來的服務器的問題是一個DNS解決問題。 PHP郵件程序無法正確解析smtp.gmail.com,這是沒有任何已知修復工作的郵件原因。

如果您遇到類似的問題,檢查你的DNS服務器

相關問題