一、概述
首先必須清楚SMTP才是提供郵件伺服器的核心,收發郵件全靠SMTP。不信你關掉hMailServer的POP3和IMAP,伺服器照樣可以收發郵件。POP3和IMAP只是郵件伺服器實現的用於提供郵件用戶端收取和管理郵件的兩種協議,其中POP3協議只能收取伺服器上的郵件,而IMAP協議可供用戶端管理伺服器上的郵件。目前幾乎所有的第三方伺服器的SMTP都限制了發送配額等各種限制,並且幾乎所有的郵件伺服器都會檢測發送方的網域名稱和IP是否匹配。簡單說就是別用第三方的進行測試,也別用自建的locahost發郵件測試,到底怎麼測試呢?在非伺服器環境下的郵件發送測試,有3種方案:
(1)類比郵件的發送,不真正發送郵件。把郵件發送的內容寫到記錄檔等。
(2)類比郵件的接收。使用localhost的SMTP發送郵件。使用SMTP4DEV等攔截內送郵件,配合windows live mail和Windows MBox Viewer等可以讀取eml格式的用戶端,可以得到正確格式的郵件,收件方不會接收到郵件。
(3)在有網域名稱和伺服器可用的前提下,設定網域名稱MX並搭建郵件伺服器,通過郵件伺服器的SMTP進行郵件的實際發送。可以通過收件方伺服器的網域名稱IP檢測,但要配置好安全措施防止郵件伺服器被利用。
發送郵件可以使用Windows Server 2008+的系統的SMTP功能,但沒有提供對POP3和IMAP協議的系統支援,因此無法使用用戶端訪問郵件伺服器。
如果我們希望使用用戶端訪問郵件伺服器,在Windows Server 2008+環境下和開源免費的前提下,目前最好的選擇就是hMailServer。如果你打算切換到hMailServer,一定要記得停用系統的SMTP服務。否則hMailServer無法監聽SMTP連接埠,就無法接收到郵件。
二、MX設定
MX設定的參考如下,在網域名稱解析中配置:
在服務上檢查MX設定:
三、使用系統的SMTP功能發郵件:
以Windows Server 2008為例,SMTP功能的安裝和服務的設定比較簡單,這裡省略。
1.網域名稱配置:
首先是網域名稱:在傳遞—>進階中 設定
2.IP配置
3.通過.NET發送郵件:
web.config配置:
發送代碼:
四、使用hMailServer收發郵件:hMailServer的安裝和漢化自行搞定。這裡一定要記住,使用hMailServer必須同時使用SMTP和POP3,並且停止系統內建的SMTP服務,否則無法內送郵件。1.添加網域名稱:
2.添加帳號:
3.配置郵件遞交:
4.綁定IP:
5.配置IP範圍:圖中的Auto-ban是由於我的密碼過於簡單並且在測試時的失敗造成hMailServer自動屏蔽了伺服器的IP,因此需要對該條限制進行配置。其他情況下不需要這個步驟。6.測試組態:
五、Web郵件用戶端用戶端收發郵件可以採用CS模式的Outlook Express和FoxMail,也可以採用163等BS模式的Web郵箱提供的代收功能內送郵件。hMailserver提供了郵件伺服器的發送和內送郵件功能,並同時提供POP3和IMAP協議的支援。開源免費的Web郵件用戶端,非.NET的Web郵件用戶端實現較多,常用的如PHP的SquirrelMail和RoundCube。.NET下的Web郵件用戶端少的可憐,但實現相關收取協議組件庫還是不缺的。有時候需要在後台中整合郵件的管理功能,可以直接使用這些組件,如ImapX等。1.整合郵件清單功能:2.標記已讀未讀:
3.刪除郵件:
4.介面參考:
發送郵件和回複郵件涉及到通訊錄、草稿和附件等要相對複雜一些,看需求是否有必要整合完整的功能,畢竟組件庫已經提供了完整的功能,我們只需要對其封裝和調用,配合介面操作就可以了,其中構建一個完善的支援Ajax的Web用戶端介面的痛點不在後台實現上,而在前台,與主題關係不大。有興趣的可以自己實現。