首頁 >後端開發 >php教程 >關於PHPmailer發送郵件失敗之Failed to connect to server

關於PHPmailer發送郵件失敗之Failed to connect to server

WBOY
WBOY原創
2016-08-08 09:28:231079瀏覽

看到一篇很好的文章,如下

使用phpmailer類smtp發送郵件不成功;排查思路首先在代碼中,我們打開SMTPDebug$mail = new PHPMailer();//建立郵件發送類

$mail->SMTPDebug = true;        //要把SMTPDebug 的屬性設定為true

如果郵件發送不成功,則會提示錯誤訊息的情況是 fail to server

following From address failed開啟DEBUG提示:ERROR: Failed to connect to server: (0)既然是連接不上,那麼我們就看是靠什麼連接的,經詢問度娘得知連接smtp伺服器是靠fsockopen連接的,那麼我們來看看這個函數是否被禁用在PHP.ini裡查找1,allow_url_fopen = On 查看該選項是否是On,是Off時函數肯定是不能用,改成On.如果還不能用,怎麼辦?因為上面的配置,是說fopen是打開狀態的,不是說打開了就能用,還要允許使用才能用,好,我們看看禁用的方法裡有沒有fsockopen2,disable_functionsdisable_functions 這個後面,有很多被禁用的方法,有fsockopen,好恭喜你,找到答案了,將它去掉,OK,重啟apache,搞掂還不行?同樣是在php.ini檔案中,看看這個開啟沒有?extension=php_openssl.dll如果已開啟,再看看php目錄下的兩擴充檔案有沒有拷到c/:windows/System32下libeay32.dll   ssleay32.dll另外:不改動伺服器,只改程式碼的情況,也可以一試,註=>我沒試過 方法1:將fsockopen函數替換成pfsockopen函數

因為pfsockopen的參數與fsockopen基本上一致,

所以只需要將@fsockopenp@pfsopensopen就可以替換了。如果運氣好 pfsockopen沒被停用,ok通過

方法2:使用stream_socket_client函數

一般fsockopen()被禁,,pfsockopenopen 也有可能被禁,所以這裡介紹另一個函數clistream_socket_client(s)。

stream_socket_client的參數與fsockopen有所不同,所以程式碼要修改為:

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

這樣就可以了。

本文出自「909是個目標」 博客,請務必保留此出處

連接如下:🜎 2014042793331.html

以上就介紹了關於PHPmailer發送郵件失敗之Failed to connect to server,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn