国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - phplist及phpmailer(組合使用)通過gmail發(fā)送郵件的配置方法

phplist及phpmailer(組合使用)通過gmail發(fā)送郵件的配置方法

2021-01-06 15:43Cheng_Tian PHP教程

這篇文章主要介紹了phplist及phpmailer通過gmail發(fā)送郵件的配置方法,分析了組合使用二者過程中的相關(guān)問題與注意事項,需要的朋友可以參考下

本文實例講述了phplistphpmailer通過gmail發(fā)送郵件的配置方法。分享給大家供大家參考,具體如下:

一般來說,只要你使用的不是gmail郵箱,那么利用phplist發(fā)送郵件只要按照前面《PHP的郵件群發(fā)系統(tǒng)phplist配置方法詳細(xì)總結(jié)》配置就夠了。但若你如同我一樣不幸,必須使用gmail這種有ssl驗證的郵箱,那么恭喜你,我的不幸現(xiàn)在已然成為你的幸運,經(jīng)過數(shù)天的嘗試,我終于成功將gmail與phplist組合在了一起?,F(xiàn)將經(jīng)驗分享于此,希望對各位同我一般境遇的同志有用。另外,phplist的核心是phpmailer,我提出的解決方案也主要是圍繞phpmailer的,所以需要使用phpmailer通過gmail發(fā)送郵件而不能成功者也可以參考我的方法。

首先按照《PHP的郵件群發(fā)系統(tǒng)phplist配置方法詳細(xì)總結(jié)》中的配置方法通過gmail發(fā)送郵件,在發(fā)送測試郵件時phplist會報告發(fā)送郵件失敗,在事件日志(eventlog)里會有錯誤提示“Mailer Error: The following From address failed:...”,說是發(fā)件人地址存在問題。難道是已經(jīng)連上smtp服務(wù)器,但是發(fā)送郵件過程中存在問題嗎?可以用一個方法試驗一下到底連沒連上smtp服務(wù)器:我把config.php文件中的郵箱帳戶密碼故意填錯,結(jié)果發(fā)送測試郵件時仍然報同樣的錯誤,看來是根本就沒連上smtp服務(wù)器,這phplist的錯誤報告也太……

知道是沒連上smtp服務(wù)器那就說明問題出現(xiàn)在phplist發(fā)送郵件的核心——另一款著名開源軟件phpmailer。

上網(wǎng)查了一下phpmailer發(fā)送gmail郵件的資料,發(fā)現(xiàn)人們說舊版本的phpmailer不支持ssl驗證,不能連接gmail的smtp服務(wù)器,而此問題已在新版的phpmailer中解決了。

打開lists/admin/phpmailer/ChangeLog.txt,發(fā)現(xiàn)最新版的phplist自帶的phpmailer的版本是1.73,是2005年出的,確實不算新。于是上phpmailer的官網(wǎng)下了個最新的5.1的。

我想先研究一下新版的phpmailer是如何解決ssl驗證的問題的,于是看了一下其自帶的一些說明文檔,碰巧發(fā)現(xiàn)在PHPMailer_v5.1/docs下有一個use_gmail.txt,看來是官方比較重視gmail問題,專門出了一個demo供人參考。打開一看也確實是一個完整的php頁面文件,基本上修改了文件擴展名、郵箱用戶名和密碼就能使用,但如果僅僅如此修改,在訪問該測試頁面時會報錯,也不知官方出的demo怎么會有這樣的錯誤,居然會調(diào)用一個未定義的函數(shù),而且有一些沒有必要的成分。我們只不過想先測試一下能否正常發(fā)送郵件,所以我將其修改為:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?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)訪問此頁面時仍然報錯,真是令人無奈,官方給的demo怎么會無法運行?

這時我忽然想起PHPMailer_v5.1/docs下有一個名為Note_for_SMTP_debugging.txt的文件,現(xiàn)在我不正是在為連不上smtp服務(wù)器而煩惱嗎,不妨看一下里面提供的調(diào)試方法。

打開文件看完第一行就眼前一亮,這正是我所需要的!其實使用方法也很簡單,只要在

?
1
$mail->IsSMTP();

前插入

?
1
$mail->SMTPDebug = 1;

便可在報錯同時得到更見詳細(xì)的錯誤信息。真是好東西^_^

按照這樣修改完后,我在訪問頁面時得到了更加詳細(xì)的說明——“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)”。

原來如此,于是我打開了我的php配置文件(C://Windows/php.ini)搜索ssl,果然搜到一個關(guān)于ssl的擴展

?
1
;extension=php_openssl.dll

它沒有被打開。去掉其前面用于注釋的“;”,然后重啟服務(wù)器,再次訪問測試頁面use_gmail.php,仍然是同樣的錯誤提示。

沒辦法了,我上網(wǎng)查了一下關(guān)于php以及apache的ssl配置的文章,發(fā)現(xiàn)僅僅是將ssl擴展模塊開啟是不夠的,還要對openssl進(jìn)行配置,在Windows環(huán)境下配置方法倒是很簡單——找到php安裝目錄下的ssleay32.dll和libeay32.dll,將這二者復(fù)制到windows下的system32目錄中即可(在php.ini中開啟extension=php_openssl.dll還是必要的)。當(dāng)然,不想“污染”system32目錄的同志們可以用修改環(huán)境變量的方法,只要讓ssleay32.dll和libeay32.dll在系統(tǒng)路徑下就可以了。(如果你使用的不是winidows操作系統(tǒng),請上網(wǎng)查找針對你的操作系統(tǒng)的配置ssl的方法,應(yīng)該不難找到)

這回再訪問use_gmail.php發(fā)現(xiàn)可以成功發(fā)送了!

在此基礎(chǔ)上,我們的phplist的問題也可以解決了:用新版phpmailer中的class.phpmailer.php和class.smtp.php覆蓋lists/admin/phpmailer中的對應(yīng)文件,然后修改lists/admin/class.phplistmailer.php中36行左右處的

?
1
2
3
$this->SMTPAuth = true;
$this->Helo = getConfig("website");
$this->Host = PHPMAILERHOST;

為:

?
1
2
3
4
5
6
$this->IsSMTP();            # Add
$this->SMTPAuth = true;
$this->SMTPSecure = "ssl";       # Add
$this->Helo = getConfig("website");
$this->Host = PHPMAILERHOST;
$this->Port = 465            # Add

其中phpmailer默認(rèn)端口號為25,是大多數(shù)smtp服務(wù)器的端口號,但是gmail使用的端口號是465,所以要重新設(shè)置。

希望本文所述對大家PHP程序設(shè)計有所幫助。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧洲一级视频 | 一区二区在线视频 | 91精品国产综合久久久久久丝袜 | 欧美日韩成人在线播放 | 成人在线精品 | 日韩看片 | 日韩成人在线观看 | 一级一片在线播放在线观看 | 中文字幕三级 | 欧美性一区二区三区 | 国模爱爱 | 精品一区二区视频 | 免费看的av| 久草福利在线视频 | 日韩中文一区二区三区 | 日韩精品久久久久久 | 亚洲欧美一区二区三区在线 | 亚洲男女视频在线观看 | 成年人免费在线播放视频 | 国产精品久久久久永久免费观看 | 国产精品亚洲一区二区三区 | 国产午夜精品久久久久久久 | 黄色片视频在线播放 | 日韩美女毛片 | 免费国产wwwwwww网站 | 日本免费在线 | 免费成人高清在线视频 | 在线日韩成人 | 色婷婷精品国产一区二区三区 | 色网站在线观看 | 国产日韩一级片 | 91久久精品一二三 | 国产日韩欧美在线观看 | 黄色成人在线 | 久久久成人精品 | 欧美国产日韩一区 | 伊人av成人 | 中文字幕欧美在线 | 日韩欧美自拍 | 亚洲人免费视频 | 国产在线日韩 |