|
phpmailer本身是一個(gè)很不錯(cuò)的開源郵件類,也非常的易用簡單,就是偶爾會出現(xiàn)程序上傳到服務(wù)器上不能發(fā)送郵件的情況,在之前也有同學(xué)問過我這個(gè)問題,當(dāng)時(shí)的時(shí)候總是不以為然,今天終于讓我碰上了,用phpmailer 在本地測試正常,上傳到服務(wù)器上就不行了,當(dāng)然了是用的SMTP方式,最終確定是fsockopen 函數(shù)惹的禍,因?yàn)榘踩騠sockopen 和pfsockopen 經(jīng)常被服務(wù)器端關(guān)閉。解決方法如下:
而代之的應(yīng)該是 stream_socket_client()函數(shù),不過他的參數(shù)有一點(diǎn)不一樣。
應(yīng)這樣更改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版本應(yīng)高于 5.0 的,因?yàn)檩^早版本沒有stream_socket_client()函數(shù)的。
OK ,問題解決了。
php技術(shù):phpmailer在服務(wù)器上不能正常發(fā)送郵件的解決辦法,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。