ASP.NET:郵件伺服器與客戶端

剛哥521發表於2015-05-06

目錄:

一、概述

二、MX設定

三、使用系統的SMTP功能發郵件

四、使用hMailServer收發郵件

五、Web郵件客戶端

一、概述

首先必須清楚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 ExpressFoxMail,也可以採用163等BS模式的Web郵箱提供的代收功能接收郵件。hMailserver提供了郵件伺服器的傳送和接收郵件功能,並同時提供POP3和IMAP協議的支援。開源免費的Web郵件客戶端,非.NET的Web郵件客戶端實現較多,常用的如PHP的SquirrelMailRoundCube。.NET下的Web郵件客戶端少的可憐,但實現相關收取協議元件庫還是不缺的。有時候需要在後臺中整合郵件的管理功能,可以直接使用這些元件,如ImapX等。
1.整合郵件列表功能:
2.標記已讀未讀:
3.刪除郵件:
4.介面參考:
傳送郵件和回覆郵件涉及到通訊錄、草稿和附件等要相對複雜一些,看需求是否有必要整合完整的功能,畢竟元件庫已經提供了完整的功能,我們只需要對其包裝和呼叫,配合介面操作就可以了,其中構建一個完善的支援Ajax的Web客戶端介面的難點不在後臺實現上,而在前臺,與主題關係不大。有興趣的可以自己實現。
 
 

相關文章