2017年8月7日 星期一

解決 PHPMailer 出現 Could not connect to SMTP host 訊息

免費的虛擬主機大多數無法使用 php 內建的 sendmail 函數寄信,
既然有提供 SMTP 伺服器,應該可以寄信才是。
  大部份建議使用 PHPMailer 這個程式來透過 SMTP 以 PHP 發送信件,
全部設定完之後,卻還是出現 Could not connect to SMTP host 的訊息,
導致 email 寄不出去。
  查來查去寄不出去的原因,最後發現原來是除了 google 的寄信伺服器能接受 smtp 小寫代號之外,其它的寄信伺服器必須使用 SMTP 大寫名稱 = ="

修改方式就是在 class.phpmailer.php 中,將

function lsSMTP(){
$this->Mailer='smtp';
}

改成

function lsSMTP(){
$this->Mailer='SMTP';
}
就可以了。

phpmailer 會以大小寫來判斷用什麼寄信的函數,如果是用小寫,會以 SmtpSend 函數寄出,
用大寫就改以 MailSend 函數寄出。

p.s. 這個方法看似沒有錯誤,結果還是沒收到信。最後是參考 PHPMailer 的 examples 中的 smtp.php 修改內容,就順利成功了。

沒有留言:

張貼留言