|
不論是 Joomla! 1.0 還是 Joomla! 1.5,在安裝之后,都默認已設(shè)定使用 PHP Mail 功能來發(fā)送激活/通知郵件。在“郵件設(shè)置”那里,還有兩個選項就是:Send Mail 和 SMTP。在大多數(shù)情況下,PHP Mail 能夠滿足需要,因此也很少有人專門關(guān)注這個問題。 不過,有時候偶爾會出現(xiàn)用 PHP Mail 或 Send Mail 發(fā)送不出郵件的情況。這可能是由于某些郵件服務(wù)器會把這兩種方式發(fā)出的郵件認定為垃圾郵件而拒收。例如,本站一直使用 PHP Mail 發(fā)送注冊后的激活郵件,發(fā)件人信箱填寫的是 Gmail 的賬號,但是 Hotmail 服務(wù)器認為 Gmail 的郵件應(yīng)該由 Gmail 服務(wù)器發(fā)出,而不應(yīng)該從 PHP Mail 發(fā)過來,因此統(tǒng)統(tǒng)拒絕。這就造成了很多人填寫 Hotmail 賬號來注冊本站會員時沒有收到激活郵件的尷尬局面。 這幾天我在嘗試改為 SMTP 方式時,才發(fā)現(xiàn) Gmail 的 SMTP 設(shè)置不像想象中那么簡單。因此決定撰文介紹一下。既然給新手看,就說詳細一點吧。
為什么要用激活郵件?因為網(wǎng)站可能要發(fā)送某些通知給會員,如果不要求激活,就無法驗證會員在注冊時填寫的信箱是否屬實。這個世界上還確實存在一批比較變態(tài)的人,注冊時就是要填 寫假的信箱,這樣網(wǎng)站就無法將重要通知送達這些會員。如果是論壇,那么一般在有回復(fù)帖子時,都要發(fā)送通知郵件給前面發(fā)帖的人,讓他們來閱讀回帖。如果信箱 是假的,怎么能通知到?還有會員之間的聯(lián)絡(luò),有時候也需要發(fā)送 e-mail。 因此,要求會員在注冊時提供有效 e-mail 是非常重要的,而確定電郵地址是否有效的最佳手段就是發(fā)送激活郵件。只有當(dāng)會員點擊激活郵件中的激活鏈接之后,才能完成注冊。如果他提供的信箱是假的,那么就永遠收不到激活郵件。 為什么要用 SMTP 發(fā)送激活郵件?前面說了,PHP Mail 和 Send Mail 也能發(fā)送郵件,但是有時候會被拒絕。因此建議使用 SMTP 方式。現(xiàn)在大多數(shù) SMTP 服務(wù)器都要要求發(fā)送者進行身份認證(SMTP Authentication),這樣發(fā)出去的郵件中就包含了認證信息,接收方的服務(wù)器就認為這封郵件的發(fā)件人身份比較可靠,就樂于接受郵件。這就好比在 淘寶網(wǎng)上商店的實名認證一樣,多了一種認證,就提高了一些可信度。 為什么要用 Gmail 的 SMTP 服務(wù)器?一般的網(wǎng)站都不會自己建 SMTP 服務(wù)器,畢竟有些麻煩。而且也不是隨便建一個 SMTP 服務(wù)器就能得到其它郵件服務(wù)器的認可。例如:你購買的網(wǎng)站空間是與其它網(wǎng)站共享一個 IP 地址(動態(tài) IP),這樣即使你建一個 SMTP 服務(wù)器,也很容易被其它郵件服務(wù)器認為不可靠。這就好比一個沒有自己辦公地點的公司,與擁有大面積廠房或者寫字樓的公司相比,哪個更可靠?這種動態(tài) IP 的 SMTP 服務(wù)器很容易被認為是“垃圾郵件發(fā)送者”。例如,spamhaus.org 這個網(wǎng)站就很容易將你的 SMTP “私服”列入黑名單,很多郵件服務(wù)器會到這個名單上核對,如果發(fā)現(xiàn)來信的 IP 已列入 spamhaus 黑名單,你的郵件就會被拒收。 舉例來說,與你共享 IP 的其它某個網(wǎng)站自己建了 SMTP 服務(wù)器,發(fā)送了惡意郵件,被接收方標(biāo)記為“垃圾郵件”并提交給 spamhaus,那么這個 IP 上所有的網(wǎng)站都受牽連。你建的 SMTP 服務(wù)器一樣被拒絕,因為 spamhaus 名單上只寫 IP 。 因此,我建議使用其它免費郵件商提供的 SMTP 服務(wù)。在這么多免費郵件中,我推薦使用 Gmail 的 SMTP 服務(wù)。 Gmail 賬號不僅是一個郵件賬號,它更是“Google 賬號”。擁有了 Gmail 賬號,就能登錄Google 的網(wǎng)站流量分析系統(tǒng)、Google Group、Gtalk 即時通訊工具、Google Code、Google Calendar 等等在線服務(wù)。你就相當(dāng)于擁有了一個使用范圍很廣的 Passport 通行證。 單就郵件功能來說,Gmail 也是非常不錯的。默認 6GB 空間,強大的郵件搜索功能,使得你幾乎不用刪除郵件。同一主題的郵件往來以會話(Thread)形式疊聯(lián)顯示,也是一大創(chuàng)舉。它還提供了免費的 POP3 和 SMTP 服務(wù),方便用戶通過 Outlook Express 等郵件客戶端軟件收發(fā)郵件。 我認為 Gmail 郵件賬號就是想要建站的網(wǎng)管應(yīng)該必備的,這一點我在《安裝Joomla之前的準(zhǔn)備工作》一文中也提到了。在此也順便提一下 Hotmail,以前 hotmail 也是允許通過 OE 來收發(fā)郵件(IMAP),后來竟然取消了!也就是說,Hotmail 根本沒有免費 SMTP 服務(wù)了。我就是在那時拋棄了 hotmail 轉(zhuǎn)用 Gmail 。 怎樣設(shè)置 Gmail 的 SMTP ?首先要在 Gmail 的 Web 界面上進入“設(shè)置”,啟用 SMTP 和 POP3 服務(wù)。 如果你要在 OE 上面使用 Gmail 的 SMTP,可以參考 Gmail 的幫助頁面來設(shè)置。但是在 Joomla! 的郵件設(shè)置中,這樣填寫是行不通的。我也是在失敗之后經(jīng)過搜索才找到一個正確方法。 一般我們都在“SMTP 主機”這里填寫 smtp.***.com ,星號代表 SMTP 服務(wù)器的域名。但是 Gmail 很特殊!因為它的認證是通過 SSL 協(xié)議訪問的,而 Joomla! 沒有提供 SSL 驗證的選項。曾經(jīng)有人在論壇發(fā)了一個 Gmail SSL 補丁,以便在上面的表單上增加一項“SMTP安全: SSL”。但是,這個補丁會修改 Joomla! 1.5 的核心文件,我認為不太好—— 當(dāng)你下次升級 Joomla! 時就很不方便。
感謝 khandu !他在 Joomla! 官方論壇發(fā)了一個帖子,介紹了一個最簡單的辦法,實現(xiàn)了不用補丁也能使用 Gmail SMTP。如上圖所示,這么填寫:
奧妙就在最后“主機”這里!我按照上述設(shè)置,已經(jīng)在 XAMPP 搭建的本地測試服務(wù)器上測試成功!(如果你測試時 Joomla! 前臺提示“PHPMAILER_RECIPIENTS_FAILED”錯誤,不要理會,你檢查一下新注冊的信箱就會發(fā)現(xiàn)已經(jīng)收到了激活郵件) 另外注意:在“SMTP 用戶名”這里,必須填寫完整的郵件地址,而不只是 @ 符號前面的部分;“密碼”當(dāng)然填寫你自己的密碼。 如果你的網(wǎng)站開通了 Gmail 提供的“企業(yè)郵局”服務(wù),那么 SMTP 用戶名那里也要填寫完整的 e-mail 地址作為認證賬號。 {mospagebreak_scroll title=在 SMF 中設(shè)置 Gmail SMTP及自建 SMTP&heading=在Joomla! 1.5 中設(shè)置 Gmail SMTP} 在 SMF 中設(shè)置 Gmail 的 SMTP 服務(wù)器如果你也在用 SMF 論壇,那么推薦在 SMF 中設(shè)置使用 Gmail 的 SMTP 來發(fā)送激活/通知郵件。SMF 的后臺提供了填寫 SMTP 服務(wù)器端口的欄目,但是也沒有選擇 SSL 的地方。我們可以用下面的辦法來實現(xiàn): 進入 SMF 后臺,點擊“服務(wù)器設(shè)置 -> 功能配置”,在這里填寫上述設(shè)置信息。SMF 這里多了一項內(nèi)容,就是“端口號”(連接埠),SSL 的端口號是 465。默認填寫的 25 是針對 PHP Mail 和一般 SMTP 的。
如上圖所示,SMF 后臺是這樣設(shè)置 Gmail SMTP 的:
這里的技巧在于:直接給 SMTP 主機名稱前面加上 ssl:// 協(xié)議。 SMF 還有一個特殊地方是,在這里填寫的 SMTP 賬號必須與“管理員信箱”一致。點擊后臺的“服務(wù)器設(shè)置 -> 核心配置”,就能找到一項“管理員電子郵件”,在這里也必須填寫與郵件設(shè)置那里一樣的 Gmail 賬號。 Gmail 的 SMTP 郵件限量為了防止有人利用 Gmail 的免費 SMTP 服務(wù)發(fā)送大量垃圾郵件,Gmail 規(guī)定:每個賬號通過 SMTP 每天只能發(fā)給 100 個收件人(注意:不是 100 封郵件,這個限制更嚴格),超過這個數(shù)量就被封號24小時;如果你登錄到 Gmail 的 web 界面,則每天可以發(fā)給 500 個收件人,超過這個數(shù)量也會被封號 24 小時。 如果你的網(wǎng)站注冊人數(shù)很多,或者論壇發(fā)帖量很大,則每天發(fā)送的激活/通知郵件很容易超過 100 封,這就違反了 Gmail 的規(guī)定,會被停用賬號 24 小說 —— 本站昨天已經(jīng)經(jīng)歷了一次這樣的處罰。 這樣來說,Gmail 的 SMTP 不能用在大型網(wǎng)站。如果你的網(wǎng)站每天發(fā)送的激活/通知郵件不超過 100,我推薦使用 Gmail SMTP;如果超過這個數(shù)量,就需要尋找其它不限量的 SMTP,或者自己搭建一個 SMTP 了 —— 大型網(wǎng)站都會這么做。 自己搭建 SMTP 服務(wù)器本站論壇最近人氣逐漸增加,每天的激活、通知郵件也很多,Gmail 的 SMTP 已經(jīng)不夠用了。因此 Tiger 就搭建了一個 SMTP 服務(wù)器,用的是 Postfix for FreeBSD 程序。在測試時發(fā)現(xiàn)兩個問題,就是下面提醒里面的,目前都已經(jīng)解決。 自己搭建 SMTP 服務(wù)器的好處是:沒有信件限量,或者說作為 Postmaster 你有完全的權(quán)限控制限量多少。另外,速度也很快,如果你沒有開設(shè)大量賬號的話。 借助開源的 ExtMail 軟件,你還可以給你的郵件服務(wù)器創(chuàng)建 Web 界面,這樣你就得到一個名副其實的電子郵局了。如果你想給會員權(quán)限來注冊免費電郵都可以。 最后提醒一下: 1、如果你自己搭建的 SMTP 發(fā)送郵件時發(fā)現(xiàn)被拒收,很可能是因為被 spamhaus.org 列入黑名單,你可以到他們網(wǎng)站進行搜索。如果證實被誤判為垃圾郵件發(fā)送源,就可以申訴,請求解除封鎖。已經(jīng)有熱心網(wǎng)友撰寫了《spamhaus的PBL申訴圖解》,你可以參考一下。 2、發(fā)往 Hotmail 的郵件會被微軟服務(wù)器進行反向解析,如果解析失敗就拒收。因此自己搭建 SMTP 服務(wù)器時注意必須同時做好反向解析。 3、如果你用 Gmail 或其他要求 SSL 連接的 SMTP 服務(wù)器時,發(fā)現(xiàn)設(shè)置正確但是無法發(fā)出郵件,請檢查一下你的網(wǎng)站服務(wù)器是否支持以 SSL 協(xié)議訪問外部 URL —— 問問你的空間商吧。
原文鏈接:http://hi.baidu.com/51webhost/blog/item/9d1cc019e0d72ef7ae5133a0.html |
|
|
來自: guli3057 > 《郵件服務(wù)》