最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux服務(wù)器下PHPMailer發(fā)送郵件失敗的問(wèn)題解決

 更新時(shí)間:2017年03月04日 14:55:29   作者:鍋?zhàn)硬┛? 
這篇文章主要給大家介紹了關(guān)于如何解決Linux服務(wù)器下PHPMailer發(fā)送郵件失敗的問(wèn)題,文中通過(guò)示例代碼介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。

需求

更換服務(wù)器之后,我發(fā)現(xiàn)我的發(fā)送郵件功能失效了!原來(lái)的服務(wù)器是可以的,一定是哪里出問(wèn)題了,決定來(lái)排查一下。我是用的PHPMailer,SMTP方式發(fā)送郵件的。

排查過(guò)程

這種方式首先PHP要開啟sockets拓展,查了一下phpinfo頁(yè)面,是開啟的:

看了一下openssl也是開啟(因?yàn)槟昧藂q郵箱來(lái)測(cè)),所以沒(méi)問(wèn)題:

那就再看一下allow_url_fopen,開啟的,沒(méi)問(wèn)題:

是不是禁用了函數(shù)?沒(méi)有禁用,沒(méi)問(wèn)題:


那配置上就沒(méi)有問(wèn)題了,我就想,是不是端口被占用了?

運(yùn)行一下:netstat -tnlp

第一條就是這玩意:

25端口被占用,被一個(gè)叫master的玩意占了,好家伙,看看是什么東西,運(yùn)行ps -f -p 1818看一下結(jié)果,1818為當(dāng)前這個(gè)程序的進(jìn)程號(hào)PID,可以看到是:

是postfix這個(gè)東西在運(yùn)行,可能搭建環(huán)境的時(shí)候不小心給裝了。

postfix是個(gè)什么東西?

postfix是一款運(yùn)行在Linux環(huán)境下免費(fèi)的郵件服務(wù)器,或者稱為MTA(Mail Transfer Agent),其它類似的有Sendmail、Qmail、exim及Zmailer 等。所以Postfix就是一個(gè)搭郵件服務(wù)器的。那這玩意肯定是沖突了,我們要通過(guò)25端口請(qǐng)求外部的郵件服務(wù)器,而本地用25端口運(yùn)行了一個(gè)郵件服務(wù)器,這個(gè)是不行的估計(jì).

嘗試解決問(wèn)題

我們嘗試一下用我們這個(gè)郵件服務(wù)器去發(fā)郵件,而不是用外部服務(wù)器(比如之前用阿里云企業(yè)郵),放了一小段測(cè)試代碼到PHPMailer目錄同級(jí)下:

<?php header("content-type:text/html;charset=utf-8"); require 'PHPMailer/class.phpmailer.php'; try { $mail = new PHPMailer(true); $mail->IsSMTP();
 $mail->CharSet='UTF-8';
 $mail->SMTPAuth = true;
 $mail->Port = 25;
 $mail->Host = '127.0.0.1';//郵箱smtp地址
 $mail->Username = 'gzp@gzpblog.com';//你的郵箱賬號(hào)
 $mail->Password = '扒拉扒拉。。。';//你的郵箱密碼
 $mail->From = 'gzp@gzpblog.com';//你的郵箱賬號(hào)
 $mail->FromName = '鍋?zhàn)?;
 $to = "扒拉扒拉@qq.com";
 $mail->AddAddress($to);
 $mail->Subject = "test";
 $mail->Body = 'hello!';
 $mail->WordWrap = 80;
 $mail->IsHTML(true);
 $mail->Send();
 echo "success!";
 } catch (phpmailerException $e) {
 echo "郵件發(fā)送失?。?.$e->errorMessage(); 
}

通過(guò)25端口的本地服務(wù)器發(fā)送郵件,運(yùn)行這個(gè)頁(yè)面,發(fā)現(xiàn)不行,報(bào)錯(cuò)不能夠驗(yàn)證,說(shuō)明這其中還有一些配置要弄,暫時(shí)行不通,不往下深究本地服務(wù)器發(fā)送了,我們嘗試一下?lián)Q回:

$mail->Host = ‘smtp.mxhichina.com'; //阿里云的郵箱smtp地址

試一下,還是不行:

沒(méi)辦法連接到SMTP。那我們把25端口的postfix服務(wù)器殺掉, 執(zhí)行kill 1818(當(dāng)前postfix的PID),再執(zhí)行一次,還是同樣錯(cuò)誤,無(wú)法連接上。這就奇了怪了,25端口沒(méi)有程序運(yùn)行了,還不行。

可能的原因

查到有可能是因?yàn)閕pv6的原因,phpMailer在進(jìn)行smtp服務(wù)器DNS解析時(shí),得到了IP v6地址,然后與IP v6解析到的地址進(jìn)行連接,導(dǎo)致連接失敗。

我試一下:

ip -6 addr show

沒(méi)東西,那又不是這個(gè)問(wèn)題。

那是什么原因呢?

解決問(wèn)題

既然25端口不可用,于是我想,是否可以嘗試一下其它端口,用465端口試試。

465端口(SMTPS):465端口是為SMTPS(SMTP-over-SSL)協(xié)議服務(wù)開放的,這是SMTP協(xié)議基于SSL安全協(xié)議之上的一種變種協(xié)議,它繼承了SSL安全協(xié)議的非對(duì)稱加密的高度安全可靠性,可防止郵件泄露。SMTPS和SMTP協(xié)議一樣,也是用來(lái)發(fā)送郵件的,只是更安全些,防止郵件被黑客截取泄露,還可實(shí)現(xiàn)郵件發(fā)送者抗抵賴功能。防止發(fā)送者發(fā)送之后刪除已發(fā)郵件,拒不承認(rèn)發(fā)送過(guò)這樣一份郵件。

465端口似乎看起來(lái)還更好,直接就開始嘗試了,進(jìn)行以下嘗試,以下為命令:

sbin/iptables -I OUTPUT -p tcp –dport 465 -j ACCEPT  打通465端口

/etc/rc.d/init.d/iptables save 保存

service iptables restart 重啟

/etc/init.d/iptables status 查看需要打開的端口是否生效?

似乎可行,現(xiàn)在嘗試一下,用SMTP的465SSL連接方式來(lái)發(fā)送郵件,稍微改了一下測(cè)試代碼:

<?php header("content-type:text/html;charset=utf-8"); require 'PHPMailer/class.phpmailer.php'; try { $mail = new PHPMailer(true); $mail->IsSMTP();
$mail->CharSet='UTF-8';
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->Host = 'smtp.mxhichina.com';//郵箱smtp地址
$mail->Username = 'gzp@gzpblog.com';//你的郵箱賬號(hào)
$mail->Password = '扒拉扒拉。。。';//你的郵箱密碼
$mail->From = 'gzp@gzpblog.com';//你的郵箱賬號(hào)
$mail->FromName = '鍋?zhàn)?;
$to = "扒拉扒拉@qq.com";
$mail->AddAddress($to);
$mail->Subject = "test";
$mail->Body = 'hello!';
$mail->WordWrap = 80;
//$mail->AddAttachment("f:/test.png"); //可以添加附件
$mail->IsHTML(true);
$mail->Send();
echo "success!";
} catch (phpmailerException $e) {
echo "郵件發(fā)送失?。?.$e->errorMessage(); //測(cè)試的時(shí)候可以去掉此行的注釋
}

執(zhí)行,成功!右下角彈出了QQ郵件的提醒。

總結(jié)

PHPMailer通過(guò)465端口進(jìn)行更安全的SMTPS協(xié)議發(fā)送郵件

可以修改:

$mail->Port = 465;

為:

$mail->SMTPSecure = 'ssl';
$mail->Port = 465;

即可。

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • PHP實(shí)現(xiàn)二叉樹深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次)實(shí)例詳解

    PHP實(shí)現(xiàn)二叉樹深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次)實(shí)例詳解

    這篇文章主要介紹了PHP實(shí)現(xiàn)二叉樹深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次),結(jié)合實(shí)例形式詳細(xì)分析了php針對(duì)二叉樹的深度優(yōu)先遍歷與廣度優(yōu)先遍歷相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-04-04
  • PHP實(shí)現(xiàn)異步調(diào)用方法研究與分享

    PHP實(shí)現(xiàn)異步調(diào)用方法研究與分享

    瀏覽器和服務(wù)器之間只一種面向無(wú)連接的HTTP協(xié)議進(jìn)行通訊的,面向無(wú)連接的程序的特點(diǎn)是客戶端請(qǐng)求服務(wù)端,服務(wù)端根據(jù)請(qǐng)求輸出相應(yīng)的程序,不能保持持久連接
    2011-10-10
  • php根據(jù)命令行參數(shù)生成配置文件詳解

    php根據(jù)命令行參數(shù)生成配置文件詳解

    這篇文章主要介紹了php根據(jù)命令行參數(shù)生成配置文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • php微信公眾開發(fā)之獲取周邊酒店信息的方法

    php微信公眾開發(fā)之獲取周邊酒店信息的方法

    這篇文章主要介紹了php微信公眾開發(fā)之獲取周邊酒店信息的方法,涉及針對(duì)微信公眾平臺(tái)關(guān)于地理信息的應(yīng)用技巧,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • PHP session會(huì)話操作技巧小結(jié)

    PHP session會(huì)話操作技巧小結(jié)

    這篇文章主要介紹了PHP session會(huì)話操作技巧,結(jié)合實(shí)例形式詳細(xì)總結(jié)分析了php中session會(huì)話操作的原理、配置方法、使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-09-09
  • Windows環(huán)境下安裝PHP Pear的方法圖文教程

    Windows環(huán)境下安裝PHP Pear的方法圖文教程

    這篇文章主要介紹了Windows環(huán)境下安裝PHP Pear的方法,結(jié)合圖文形式詳細(xì)說(shuō)明了Windows環(huán)境下安裝PHP Pear的相關(guān)命令與操作技巧,需要的朋友可以參考下
    2019-07-07
  • php與paypal整合方法

    php與paypal整合方法

    這幾天,boss要求在system中整合paypal,方便交易.個(gè)個(gè)都沒(méi)空,就我比較清閑.所以,這工作就落我身上了.一點(diǎn)頭緒都沒(méi)有.只能先google一下了.查找了大半個(gè)上午,中午懂了那么一點(diǎn).還好paypal提供了比較完整的參考文檔.
    2010-11-11
  • PHP 如何獲取二維數(shù)組中某個(gè)key的集合

    PHP 如何獲取二維數(shù)組中某個(gè)key的集合

    PHP 獲取二維數(shù)組中某個(gè)key的集合
    2014-06-06
  • 幾個(gè)php應(yīng)用技巧

    幾個(gè)php應(yīng)用技巧

    php小技巧PHP重定向
    2008-03-03
  • php正則表達(dá)匹配中文問(wèn)題分析小結(jié)

    php正則表達(dá)匹配中文問(wèn)題分析小結(jié)

    本文章分析了在php中正則表達(dá)式對(duì)中文的支持問(wèn)題,一般情況下我們可會(huì)能簡(jiǎn)單利用我上面的正則來(lái)驗(yàn)證中文,后面我分析了關(guān)于兼容gb2312,utf-8和表達(dá)式 ^[\\x7f-\\xff]+$ 可以完全搞定中文不兼容的問(wèn)題
    2012-03-03

最新評(píng)論

建平县| 都江堰市| 隆子县| 涟水县| 杭州市| 大洼县| 兴仁县| 宁阳县| 桓仁| 天峻县| 绵竹市| 湛江市| 教育| 化州市| 中超| 华安县| 卢龙县| 莱州市| 甘谷县| 武汉市| 都匀市| 鄂托克旗| 沈丘县| 师宗县| 乐亭县| 阳信县| 株洲市| 阳东县| 蒙山县| 大足县| 台中市| 凉城县| 商都县| 宝坻区| 肇州县| 青岛市| 古丈县| 九江县| 大悟县| 天台县| 玉环县|