伊莉討論區

標題: 利用 phpmailer 透過 gmail 寄信問題 [打印本頁]

作者: jackyo03    時間: 2016-5-26 02:10 PM     標題: 利用 phpmailer 透過 gmail 寄信問題

本帖最後由 jackyo03 於 2016-5-26 02:13 PM 編輯

網路上找了許多答案,但沒有解決我的問題...我寄信後出現這段錯誤訊息"Could not instantiate mail function"
用phpmailer來寄信需要安裝什麼嗎!?
我看網路上許多人都是下載PHPMailer解壓縮後放進PHP資料夾裡,指定目錄給後就可寄信了,主要函數如下:
我應該是沒有設定錯誤才對
  1. <?php
  2.     require_once('../PHPMailer/PHPMailerAutoload.php');
  3.     require("../phpMailer/class.phpmailer.php");

  4.     $mail= new PHPMailer();
  5.     $mail->IsSMTP();
  6.     $mail->SMTPAuth = true;
  7.     $mail->SMTPSecure = "ssl";
  8.     $mail->Host = "smtp.gmail.com";
  9.     $mail->Port = 465;
  10.     $mail->CharSet = "UTF-8";
  11.     $mail->Username = "XXX@gmail.com";
複製代碼
  1. $mail->Password = "******";
  2.     $mail->AddAddress("$email,$name");
  3.     if(!$mail->Send()){
  4.         echo "<p align=center>Error: ".$errorx=$mail->ErrorInfo."</p>";
  5.     }else{
  6.         echo "<p align=center><b>傳送成功。</b></p>";
複製代碼


作者: chengpocheng    時間: 2016-5-26 02:55 PM

1.到 phpMailer/class.phpmailer.php,找到下列字串:
  1. $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
複製代碼
把$params拿掉,改成
  1. $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header);
複製代碼
試試看
作者: chengpocheng    時間: 2016-6-1 10:40 AM

樓主把 SSL協議換成TLS試試看
  1. <?php
  2.     require_once('../PHPMailer/PHPMailerAutoload.php');
  3.     require("../phpMailer/class.phpmailer.php");

  4.     $mail= new PHPMailer();
  5.     $mail->IsSMTP();
  6.     $mail->SMTPAuth = true;
  7.     $mail->SMTPSecure = "tls";
  8.     $mail->Host = "smtp.gmail.com";
  9.     $mail->Port = 587;
  10.     $mail->CharSet = "UTF-8";
  11.     $mail->Username = "XXX@gmail.com";
複製代碼

作者: kwj    時間: 2016-6-2 12:22 AM

本帖最後由 kwj 於 2016-6-2 12:23 AM 編輯

以前曾經寫過類似的東西,不過後來 Google 在帳號上加入了應用程式密碼的功能
樓主有可能需要試試看把自己的 Google 帳號的應用程式密碼停用
這樣應用程式才能略過驗證,使用舊的(低安全性)的方式存取。

(可以 Google「低安全性應用程式」,就能找到相關的說明)

作者: B1DE49FC    時間: 2016-6-19 09:44 AM

我之前是透過 Google Apps 的 SMTP 寄信
但忘記哪個時間這個功能被收掉了

有一段過渡期我是自己架設 postfix 發信
但要自己搞定一堆憑證問題
沒設定好還會被當成垃圾信件

最後我跳槽改用別人提供的免費服務
像是 mailgun 或是 mailchimp
樓主如果沒有一定要使用 Gmail 寄信的話可以參考看看




歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!