国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

phpmailer發送郵件 SMTP Error: Could not authenticate 錯誤

2024-05-04 21:57:17
字體:
來源:轉載
供稿:網友

今天在使用phpmailer發送郵件時居然提示SMTP Error: Could not authenticate,這個感覺是smtp設置的問題,下面我在網上找到了幾種解決辦法。

今天在使用phpmailer發送smtp郵件時提示 SMTP Error: Could not authenticate 錯誤,其中密碼帳號都是正確的,郵箱也設置開啟了SMTP功能。

上谷歌百度了一遍,有的說是服務器禁用了端口,有的說把class.phpmailer.php中的,代碼如下:

  1. function IsSMTP() {  
  2.  $this->Mailer = 'smtp';  
  3.  }//改為  
  4.  
  5. function IsSMTP() {  
  6.  $this->Mailer = 'SMTP';  
  7.  } 

測試以后還是不行,心中郁悶的一米,最后在一篇博客中找到了解決方法,先分享出來讓更多遇到同樣問題的人能得到幫助!

這個錯誤說明虛擬主機不支持PHPMailer默認調用的fsockopen函數,找到class.smtp.php文件,搜索fsockopen,就找到了這樣一段代碼:

  1. // connect to the smtp server  
  2.  $this->smtp_conn = @fsockopen($host,// the host of the server  
  3.      $port,// the port to use  
  4.      $errno,   // error number if any  
  5.      $errstr,  // error message if any  
  6.      $tval);   // give up after ? secs 

方法1:將fsockopen函數替換成pfsockopen函數,首先,在php.ini中去掉下面的兩個分號

 ;extension=php_sockets.dll

;extension=php_openssl.dll

然后重啟一下,因為pfsockopen的參數與fsockopen基本一致,所以只需要將@fsockopen替換成@pfsockopen就可以了。

方法2:使用stream_socket_client函數

一般fsockopen()被禁,pfsockopen也有可能被禁,所以這里介紹另一個函數stream_socket_client(),stream_socket_client的參數與fsockopen有所不同,所以代碼要修改為如下:

$this->smtp_conn = stream_socket_client("tcp://".$host.":".$port, $errno,  $errstr,  $tval);

這樣就可以了,如果上面辦法還是沒有解決可能是郵箱自動過濾你機器自動登錄郵箱發郵件了哦,我是使用下面辦法解決的,剛開始使用的qq的帳號,提示上面錯誤。換成新注冊的163帳號可以正常發送。之后換了一個qq等級比較高的帳號,這下可以正常發送,沒有報任何錯誤。因為收件人用的是qq郵箱帳號,所以發件帳號用qq的郵箱比較好,這樣發送過多不會輕易的被攔截或判為垃圾郵件。所以結論就是配置中使用一個qq等級比較高的帳號(我的一個小號等級2個月亮可以正常使用,當然等級越高越好,)

結論:也要查看郵箱中“設置郵件地址黑名單”及“收信規則”,有時系統會自動將一些郵箱自動加入黑名單的

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铜鼓县| 柘荣县| 东辽县| 北海市| 遂宁市| 左贡县| 新河县| 兴宁市| 罗甸县| 德保县| 韶山市| 涡阳县| 阳曲县| 天峻县| 蒲江县| 获嘉县| 西丰县| 安顺市| 永定县| 合作市| 罗平县| 龙南县| 华坪县| 白银市| 长岛县| 基隆市| 长宁区| 泸西县| 长顺县| 涟源市| 拜城县| 邯郸县| 西青区| 手游| 鹿邑县| 开化县| 黄龙县| 新安县| 克拉玛依市| 桐柏县| 湄潭县|