郵件系統的設計原理

我的微信公衆號爲機器知心媛,掃描二維碼關注我吧

1.相關技術介紹

Web Email相關開發技術做了簡潔的介紹,通過對郵箱技術知識的瞭解,能夠清楚地明白系統的原理。

JSP開發技術

JSP技術通俗一點地講是HTML頁面加上Java語言。JSP使得網頁設計與網頁邏輯分離,支持可重用組件的設計,使得基於Web應用程序卡法變得迅速。JSP和HTML都是展示頁面,而JSP與HTML不一樣的是,JSP可在頁面內嵌入Java代碼,給用戶提供動態數據。用JSP開發的Web應用程序能夠跨平臺進行使用,既能在其他操作系統運行,也能在Linux系統下運行,也有着Java語言的最大優點,即一次編寫隨處運行,除了這個優點,JSP還具有很好的安全性以及很高的效率。

B/S架構

  B/S是Brower/Server,即瀏覽器/服務器架構,極少的事務處理在前端,大多事務處理都發生在後端。B/S架構不需要安裝別的軟件,只需客戶端有瀏覽器即可,通過瀏覽器訪問主頁面。B/S分爲表示層、業務邏輯層、數據訪問層,表現層是對頁面的渲染,將前臺頁面信息展現給用戶,業務邏輯層則是用戶對頁面數據進行操作,在後臺進行業務邏輯處理,數據層對客戶端請求處理的數據進行運算,並存儲在數據庫內。B/S架構模式如圖所示。瀏覽器向服務器發送Http請求,服務器接收到請求並解析該請求,調用業務邏輯處理,讀寫數據進數據庫,數據庫返回數據到應用層進行邏輯處理,渲染頁面返回Html給客戶端。

MVC設計模式

MVC模式是模型(Model)、視圖(View)、控制器(Controller)。設計模式和框架是不同的,框架是對代碼的重用,設計模式是對設計的重用,本文系統依據MVC模式進行設計,用戶通過瀏覽器發送請求到Dispatcher Servlet前端控制器,找到相對應的控制器,控制器調用業務處理到Model模型,並返回ModelAndView,將頁面返回給用戶。

MVC模式將視圖、模型、控制器分離,一個模型可以有多個視圖變化,當用戶通過某個視圖的控制器改變了數據,那麼其他相關的視圖數據也將會更新顯示在頁面。在MVC模式中,是通過JSP技術來展示頁面,充當着MVC中的視圖View,Servlet技術完成大量的事務處理,Servlet在其中擔當着Controller的角色,決定着哪個頁面發送給用戶,JavaBean負責數據的處理,是MVC中的Model模型, MVC的好處是只需要在以前的程序上稍作修改或增加新的類,就可以輕鬆增加很多程序功能。

E-mail的技術原理

E-mail包括郵件用戶代理MUA、郵件傳輸代理MTA、郵件傳遞代理MDA,MUA負責發信和收信,郵件由MUA代理髮送出去,發送到MTA郵件傳輸代理上,如Email服務代理商,經由該發送人的郵箱傳輸到接收者的郵件服務代理商,到達對方的MTA後,MTA將郵件發送到最終目的地MDA,郵件就呆在了對方郵件服務商的某個服務器上,存在某個數據庫中,不會傳遞到對方的電腦,當對方連接上網絡時,通過MUA郵件用戶代理將郵件從MDA中取出。郵件收發流程如圖所示。

郵件傳輸協議技術

電子郵件傳輸協議包括SMTP協議、POP3協議、IMAP協議等,本文系統郵件採用的時MIME郵件格式,MIME是多用途互聯網郵件擴展類型,在發送電子郵件時附加多媒體數據,能夠在郵件客戶端根據類型進行處理,它可以支持聲音、文本、圖像、視頻等。郵件收發協議運作如圖所示。

SMTP協議

SMTP是簡單郵件傳輸協議,是TCP/IP協議簇,定義了郵件客戶端和郵件服務器之間的通信規則,目標是向用戶提供高效、可靠的郵件傳輸。SMTP協議主要是對發送郵件制定的協議,郵件用戶代理MUA和郵件傳輸代理MTA都用到了SMTP協議,SMTP協議的端口號爲25。最初的SMTP協議沒有對發送方進行身份驗證,後來就定義了SMTP-AUTH,保障了郵件的安全性和防止了垃圾郵件的入侵。

SMTP將郵件報文封裝在郵件對象中,SMTP協議的郵件包含兩部分:信封和內容。在SMTP通信時,發送端郵件服務器和接收端郵件服務器的25號端口建立TCP連接,客戶端向服務器發送各種命令請求服務,服務端解析命令給予響應,直到兩端的所有郵件發送完畢,可以從過程看出,命令和響應是SMTP協議的重點。

POP3協議

POP3協議是對接收郵件制定的協議,端口號爲110,默認的傳輸協議爲TCP。POP3支持離線郵件處理,當郵件發送到服務器上,將郵件從郵件服務器傳送到個人電腦,使用的是POP3協議,同時在郵件服務器上下載郵件,也不刪除郵件服務器上的郵件,這種離線訪問模式是一種存儲轉發方式。POP3協議使用ASCII碼來傳輸數據,POP3有三種狀態:授權狀態,處理狀態,更新狀態,當TCP建立連接時,POP3進入授權狀態,檢查用戶的USER/PASS,,通過驗證後,進入處理狀態,處理用戶發來的LIST命令,當用戶發來更新命令,進入更新狀態,處理完後又重新進入授權狀態。使用POP3簡化了用戶的操作,無需訪問郵件服務器,即可離線地查看個人郵件信息。

當都是一個服務器時如163服務器,客戶端1發送郵件給客戶端2,客戶端1發送的郵件經過SMTP協議發送郵件,並存儲到郵件服務器的數據庫中,客戶端2通過POP3協議收郵件。兩個客戶端相同郵件服務器的收發過程如圖所示。

當客戶端接收方和發送方郵件服務器不同時,假設客戶端1爲163郵箱,客戶端2爲qq郵箱,客戶端1發送郵件由SMTP協議經過163郵件服務器發送出去,與qq郵件服務器的SMTP的端口號爲25進行TCP連接,qq郵件服務器將郵件存至郵件服務器數據庫,客戶端2POP3協議從數據庫接收郵件。不同郵件服務器的收發郵件過程如圖所示。

電子郵件被很多商務人士使用,因爲電子郵件在工作中顯得更加正式,電子郵件實現了文本、音頻、圖像等不同信息的傳遞,加速了信息的傳遞和數據交流,與即時通訊的不同是,電子郵件優勢是收取的郵件具有永久性,郵件中傳遞的附件不會被壓縮,被永久地保存至郵件服務器中。本文介紹了使用瀏覽器訪問的郵件系統Web Email的技術原理和相關協議。

系統開發環境

(1)Java環境

Java環境爲JDK1.8,配置好JDK版本,將Java環境配置好。

(2)數據庫

採用的是MySQL5.5數據庫,更好地對數據進行存儲管理,使用Navicat數據庫管理工具,用戶界面簡單易用,支持最全面的文件類型的導入導出。

(3)Tomcat服務器

本文系統由Tomcat9服務器運行,Tomcat服務器是一個免費的開放源代碼的Web服務器,非常適合開發和調試JSP程序,屬於輕量級應用服務器,當配置好Apache Tomcat服務器時,可以響應HTML頁面的訪問請求,本文系統所有界面是由Tomcat9運行顯示。

(4)集成開發工具IDEA

使用的開發工具是IntelliJ IDEA,具有體積小速度快、高可用性的特點,靈活的JUnit支持,單元測試可以獨立運行,支持J2EE,在業界內被公認爲最好的Java開發工具之一。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章