phplist及phpmailer(組合使用)通過(guò)gmail發(fā)送郵件的配置方法,phplistphpmailer_PHP教程
Jul 12, 2016 am 08:55 AMphplist及phpmailer(組合使用)通過(guò)gmail發(fā)送郵件的配置方法,phplistphpmailer
本文實(shí)例講述了phplist及phpmailer通過(guò)gmail發(fā)送郵件的配置方法。分享給大家供大家參考,具體如下:
一般來(lái)說(shuō),只要你使用的不是gmail郵箱,那么利用phplist發(fā)送郵件只要按照前面《PHP的郵件群發(fā)系統(tǒng)phplist配置方法詳細(xì)總結(jié)》配置就夠了。但若你如同我一樣不幸,必須使用gmail這種有ssl驗(yàn)證的郵箱,那么恭喜你,我的不幸現(xiàn)在已然成為你的幸運(yùn),經(jīng)過(guò)數(shù)天的嘗試,我終于成功將gmail與phplist組合在了一起?,F(xiàn)將經(jīng)驗(yàn)分享于此,希望對(duì)各位同我一般境遇的同志有用。另外,phplist的核心是phpmailer,我提出的解決方案也主要是圍繞phpmailer的,所以需要使用phpmailer通過(guò)gmail發(fā)送郵件而不能成功者也可以參考我的方法。
首先按照《PHP的郵件群發(fā)系統(tǒng)phplist配置方法詳細(xì)總結(jié)》中的配置方法通過(guò)gmail發(fā)送郵件,在發(fā)送測(cè)試郵件時(shí)phplist會(huì)報(bào)告發(fā)送郵件失敗,在事件日志(eventlog)里會(huì)有錯(cuò)誤提示“Mailer Error: The following From address failed:...”,說(shuō)是發(fā)件人地址存在問(wèn)題。難道是已經(jīng)連上smtp服務(wù)器,但是發(fā)送郵件過(guò)程中存在問(wèn)題嗎?可以用一個(gè)方法試驗(yàn)一下到底連沒(méi)連上smtp服務(wù)器:我把config.php文件中的郵箱帳戶密碼故意填錯(cuò),結(jié)果發(fā)送測(cè)試郵件時(shí)仍然報(bào)同樣的錯(cuò)誤,看來(lái)是根本就沒(méi)連上smtp服務(wù)器,這phplist的錯(cuò)誤報(bào)告也太……
知道是沒(méi)連上smtp服務(wù)器那就說(shuō)明問(wèn)題出現(xiàn)在phplist發(fā)送郵件的核心——另一款著名開(kāi)源軟件phpmailer。
上網(wǎng)查了一下phpmailer發(fā)送gmail郵件的資料,發(fā)現(xiàn)人們說(shuō)舊版本的phpmailer不支持ssl驗(yàn)證,不能連接gmail的smtp服務(wù)器,而此問(wèn)題已在新版的phpmailer中解決了。
打開(kāi)lists/admin/phpmailer/ChangeLog.txt,發(fā)現(xiàn)最新版的phplist自帶的phpmailer的版本是1.73,是2005年出的,確實(shí)不算新。于是上phpmailer的官網(wǎng)下了個(gè)最新的5.1的。
我想先研究一下新版的phpmailer是如何解決ssl驗(yàn)證的問(wèn)題的,于是看了一下其自帶的一些說(shuō)明文檔,碰巧發(fā)現(xiàn)在PHPMailer_v5.1/docs下有一個(gè)use_gmail.txt,看來(lái)是官方比較重視gmail問(wèn)題,專門(mén)出了一個(gè)demo供人參考。打開(kāi)一看也確實(shí)是一個(gè)完整的php頁(yè)面文件,基本上修改了文件擴(kuò)展名、郵箱用戶名和密碼就能使用,但如果僅僅如此修改,在訪問(wèn)該測(cè)試頁(yè)面時(shí)會(huì)報(bào)錯(cuò),也不知官方出的demo怎么會(huì)有這樣的錯(cuò)誤,居然會(huì)調(diào)用一個(gè)未定義的函數(shù),而且有一些沒(méi)有必要的成分。我們只不過(guò)想先測(cè)試一下能否正常發(fā)送郵件,所以我將其修改為:
<?php // example on using PHPMailer with GMAIL include("class.phpmailer.php"); include("class.smtp.php"); // note, this is optional - gets called from main class if not already loaded $mail = new PHPMailer(); $body = "test"; $mail->IsSMTP(); $mail->SMTPAuth = true; // enable SMTP authentication $mail->SMTPSecure = "ssl"; // sets the prefix to the servier $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server $mail->Port = 465; // set the SMTP port $mail->Username = "myname@gmail.com"; // GMAIL username $mail->Password = "mypassword"; // GMAIL password $mail->From = "myname@gmail.com"; $mail->FromName = "Webmaster"; $mail->Subject = "This is the subject"; $mail->AltBody = "This is the body when user views in plain text format"; //Text Body $mail->WordWrap = 50; // set word wrap $mail->MsgHTML($body); $mail->AddReplyTo("myname@gmail.com","Webmaster"); $mail->AddAddress("myname@gmail.com","First Last"); $mail->IsHTML(true); // send as HTML if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message has been sent"; } ?>
結(jié)果發(fā)現(xiàn)訪問(wèn)此頁(yè)面時(shí)仍然報(bào)錯(cuò),真是令人無(wú)奈,官方給的demo怎么會(huì)無(wú)法運(yùn)行?
這時(shí)我忽然想起PHPMailer_v5.1/docs下有一個(gè)名為Note_for_SMTP_debugging.txt的文件,現(xiàn)在我不正是在為連不上smtp服務(wù)器而煩惱嗎,不妨看一下里面提供的調(diào)試方法。
打開(kāi)文件看完第一行就眼前一亮,這正是我所需要的!其實(shí)使用方法也很簡(jiǎn)單,只要在
$mail->IsSMTP();
前插入
$mail->SMTPDebug = 1;
便可在報(bào)錯(cuò)同時(shí)得到更見(jiàn)詳細(xì)的錯(cuò)誤信息。真是好東西^_^
按照這樣修改完后,我在訪問(wèn)頁(yè)面時(shí)得到了更加詳細(xì)的說(shuō)明——“SMTP -> ERROR: Failed to connect to server: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (28593608)”。
原來(lái)如此,于是我打開(kāi)了我的php配置文件(C://Windows/php.ini)搜索ssl,果然搜到一個(gè)關(guān)于ssl的擴(kuò)展
;extension=php_openssl.dll
它沒(méi)有被打開(kāi)。去掉其前面用于注釋的“;”,然后重啟服務(wù)器,再次訪問(wèn)測(cè)試頁(yè)面use_gmail.php,仍然是同樣的錯(cuò)誤提示。
沒(méi)辦法了,我上網(wǎng)查了一下關(guān)于php以及apache的ssl配置的文章,發(fā)現(xiàn)僅僅是將ssl擴(kuò)展模塊開(kāi)啟是不夠的,還要對(duì)openssl進(jìn)行配置,在Windows環(huán)境下配置方法倒是很簡(jiǎn)單——找到php安裝目錄下的ssleay32.dll和libeay32.dll,將這二者復(fù)制到windows下的system32目錄中即可(在php.ini中開(kāi)啟extension=php_openssl.dll還是必要的)。當(dāng)然,不想“污染”system32目錄的同志們可以用修改環(huán)境變量的方法,只要讓ssleay32.dll和libeay32.dll在系統(tǒng)路徑下就可以了。(如果你使用的不是winidows操作系統(tǒng),請(qǐng)上網(wǎng)查找針對(duì)你的操作系統(tǒng)的配置ssl的方法,應(yīng)該不難找到)
這回再訪問(wèn)use_gmail.php發(fā)現(xiàn)可以成功發(fā)送了!
在此基礎(chǔ)上,我們的phplist的問(wèn)題也可以解決了:用新版phpmailer中的class.phpmailer.php和class.smtp.php覆蓋lists/admin/phpmailer中的對(duì)應(yīng)文件,然后修改lists/admin/class.phplistmailer.php中36行左右處的
$this->SMTPAuth = true; $this->Helo = getConfig("website"); $this->Host = PHPMAILERHOST;
為:
$this->IsSMTP(); # Add $this->SMTPAuth = true; $this->SMTPSecure = "ssl"; # Add $this->Helo = getConfig("website"); $this->Host = PHPMAILERHOST; $this->Port = 465 # Add
其中phpmailer默認(rèn)端口號(hào)為25,是大多數(shù)smtp服務(wù)器的端口號(hào),但是gmail使用的端口號(hào)是465,所以要重新設(shè)置。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語(yǔ)法入門(mén)教程》、《php操作office文檔技巧總結(jié)(包括word,excel,access,ppt)》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- PHP的郵件群發(fā)系統(tǒng)phplist配置方法詳細(xì)總結(jié)
- PHP借助phpmailer發(fā)送郵件
- thinkphp使用phpmailer發(fā)送郵件的方法
- 使用PHPMailer實(shí)現(xiàn)郵件發(fā)送代碼分享
- phpmailer在服務(wù)器上不能正常發(fā)送郵件的解決辦法
- PHPMailer發(fā)送HTML內(nèi)容、帶附件的郵件實(shí)例
- phpmailer中文亂碼問(wèn)題的解決方法
- PHP使用PHPMailer發(fā)送郵件的簡(jiǎn)單使用方法
- ThinkPHP利用PHPMailer實(shí)現(xiàn)郵件發(fā)送實(shí)現(xiàn)代碼
- phpmailer發(fā)送gmail郵件實(shí)例詳解
- PHPMailer郵件發(fā)送的實(shí)現(xiàn)代碼

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門(mén)文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

不管有多少即時(shí)訊息應(yīng)用程式來(lái)來(lái)去去,郵件總是給人一種完全不同的感覺(jué)。郵寄確實(shí)是Gmail的代名詞。更別說(shuō)專業(yè)的前臺(tái)了,Gmail是避不開(kāi)的,就是避不開(kāi)!由於Gmail的使用如此頻繁,因此無(wú)論什麼事情,您都必須知道如何才能讓您的Gmail體驗(yàn)最順暢、最高效。您很可能需要在電子郵件正文中添加大量網(wǎng)絡(luò)鏈接,如果您有這麼多鏈接,它肯定會(huì)顯得笨拙。但是連結(jié)確實(shí)是必要的,即使長(zhǎng)連結(jié)肯定會(huì)讓你的郵件看起來(lái)很醜。那麼有出路嗎?超連結(jié)怎麼樣?您如何將連結(jié)隱藏在文字或圖像中?聽(tīng)起來(lái)很酷?哦,是的,Gmail非

如何從 Gmail 中刪除 Boomerang在下面找到我們的逐步指南,以從您的 PC 或手機(jī)上的 Gmail 帳戶中刪除 Boomerang。在電腦上要從 Gmail 中移除 Boomerang,請(qǐng)?jiān)谀碾娔X上開(kāi)啟 Google Chrome 瀏覽器。在Google瀏覽器中,點(diǎn)選畫(huà)面右上角的??三點(diǎn)圖示。從下拉式選單中選擇更多工具。從下一個(gè)下拉式選單中點(diǎn)選擴(kuò)充功能。在「擴(kuò)充功能」畫(huà)面上,找

在Web應(yīng)用程式中,往往需要將郵件一次發(fā)送給多個(gè)收件者。 PHP是一種很流行的Web開(kāi)發(fā)語(yǔ)言,而PHPMailer是一種常見(jiàn)的發(fā)送郵件的PHP類別庫(kù)。 PHPMailer提供了豐富的接口,使得在PHP應(yīng)用程式中發(fā)送郵件變得更加方便和易於使用。在本篇文章中,我們將介紹如何使用PHPMailer向多個(gè)收件者傳送郵件的方法和步驟。下載PHPMailer首先需要在官網(wǎng)(

Gmail是Google推出的最受歡迎的網(wǎng)頁(yè)為基礎(chǔ)的電子郵件伺服器,它具有許多在瀏覽、編輯和發(fā)送電子郵件時(shí)很有幫助的強(qiáng)大功能。其中一項(xiàng)功能是自動(dòng)完成列表,它允許用戶在完成輸入完整地址之前查看已儲(chǔ)存為聯(lián)絡(luò)人的電子郵件地址列表。此功能確實(shí)很有用,但有時(shí)它可能不是很好的方法,因?yàn)榭赡苡幸恍╇娮余]件地址不再有效或可能已被使用者刪除。例如,離開(kāi)組織的人無(wú)法再存取公司電子郵件地址。但是有一種方法可以刪除那些在Gmail的自動(dòng)完成清單中突出顯示的電子郵件地址。如果您還想從Gmail自動(dòng)完成清單中刪除電子郵件

谷歌正在透過(guò)人工智慧驅(qū)動(dòng)的問(wèn)答功能擴(kuò)展其在 Android 上的 Gmail 應(yīng)用程序,該功能已在 Gmail 網(wǎng)路版中提供,並由谷歌的 Gemini AI 助手提供支援。用戶現(xiàn)在可以透過(guò)詢問(wèn)具體資訊來(lái)更有效地搜尋收件匣

解決方法:1、檢查帳戶是否違反了Gmail的使用政策,需要遵守這些政策並等待一段時(shí)間以恢復(fù)帳戶;2、聯(lián)繫Gmail客服團(tuán)隊(duì)尋求協(xié)助,透過(guò)Gmail的官方網(wǎng)站或應(yīng)用程式中的協(xié)助和支援頁(yè)面找到客服聯(lián)絡(luò)方式;3、檢查帳戶是否受到了未經(jīng)授權(quán)的存取或被駭客攻擊,需要立即更改密碼並啟用雙重認(rèn)證以保護(hù)帳戶安全;4、停止發(fā)送大量郵件並等待一段時(shí)間恢復(fù)帳戶。

您是否注意到,當(dāng)您嘗試在 iOS 上刪除 Gmail 中的郵件時(shí),您只會(huì)看到存檔選項(xiàng)?繼續(xù)閱讀以了解如何在 iPhone 上刪除 Gmail,而不是在郵件應(yīng)用程式中存檔。更改使用iPhone 和 iPad上的郵件應(yīng)用程式歸檔 Gmail 電子郵件的預(yù)設(shè)選項(xiàng)的設(shè)定完全隱藏在設(shè)定中,但一旦你知道要去哪裡,它就可以快速更改。請(qǐng)記住,本教學(xué)適用於透過(guò) iPhone 和 iPad 上的 Apple 郵件應(yīng)用程式使用 Gmail 的用戶。另一種選擇是在 iPhone/iPad 上使用 Gmail 應(yīng)用程式。您甚至

PHP開(kāi)發(fā)實(shí)務(wù):使用PHPMailer發(fā)送郵件到MySQL資料庫(kù)中的使用者引言:在現(xiàn)代互聯(lián)網(wǎng)建設(shè)中,郵件是一種重要的溝通工具。無(wú)論是用戶註冊(cè)、密碼重置,還是電子商務(wù)中的訂單確認(rèn),發(fā)送電子郵件都是必不可少的功能。本文將介紹如何使用PHPMailer來(lái)傳送電子郵件,並將郵件資訊儲(chǔ)存到MySQL資料庫(kù)中的使用者資訊表中。一、安裝PHPMailer庫(kù)PHPMailer是
