程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> phpmailer在服務器上不能正常發送郵件的解決辦法

phpmailer在服務器上不能正常發送郵件的解決辦法

編輯:PHP綜合

phpmailer本身是一個很不錯的開源郵件類,也非常的易用簡單,就是偶爾會出現程序上傳到服務器上不能發送郵件的情況,在之前也有同學問過我這個問題,當時的時候總是不以為然,今天終於讓我碰上了,用phpmailer 在本地測試正常,上傳到服務器上就不行了,當然了是用的SMTP方式,最終確定是fsockopen 函數惹的禍,因為安全原因fsockopen 和pfsockopen 經常被服務器端關閉。解決方法如下:

而代之的應該是 stream_socket_client()函數,不過他的參數有一點不一樣。

應這樣更改phpmailer 的 class.stmp.php文件:

$this->smtp_conn = @fsockopen( $host,  // the host of the server
                 $port,  // the port to use
                 $errno,  // error number if any
                 $errstr, // error message if any
                 $tval);  // give up after ? secs

改為

$this->smtp_conn = @stream_socket_client( $host.':'.$port,  // the host of the server
                 $errno,  // error number if any
                 $errstr, // error message if any
                 $tval);  // give up after ? secs

這裡 PHP版本應高於 5.0 的,因為較早版本沒有stream_socket_client()函數的。
OK ,問題解決了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved