趙彥
(江蘇信息職業(yè)技術(shù)學(xué)院物聯(lián)網(wǎng)工程系,江蘇無(wú)錫214000)
基于James技術(shù)的企業(yè)電子郵件附件過(guò)濾系統(tǒng)
趙彥
(江蘇信息職業(yè)技術(shù)學(xué)院物聯(lián)網(wǎng)工程系,江蘇無(wú)錫214000)
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,電子郵件已經(jīng)成為必備的網(wǎng)絡(luò)服務(wù)之一.以Apache開(kāi)源項(xiàng)目James框架作為郵件收發(fā)平臺(tái),My SQL完成后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì),使用基于Java EE技術(shù)的SaStruts框架實(shí)現(xiàn)的企業(yè)電子郵件附件過(guò)濾系統(tǒng),能夠智能區(qū)分企業(yè)內(nèi)部郵件和外部郵件,解決郵件服務(wù)器上滯留大量附件的問(wèn)題.
James;SaStruts框架;郵件附件過(guò)濾器;Java EE
基于James技術(shù)的企業(yè)電子郵件附件過(guò)濾系統(tǒng),建立在James框架基礎(chǔ)之上,使用Java技術(shù)對(duì)原有郵件服務(wù)器改造,對(duì)傳輸和存儲(chǔ)在該服務(wù)器上的電子郵件附件按照企業(yè)需求進(jìn)行過(guò)濾,使用Java EE技術(shù)SaStruts框架完成郵件瀏覽Web端的設(shè)計(jì).整個(gè)項(xiàng)目是來(lái)自日本三菱電機(jī)株式會(huì)社的對(duì)日外包項(xiàng)目,已在日本三菱電機(jī)株式會(huì)社投入使用.該項(xiàng)目獲得2012年江蘇省大學(xué)生實(shí)踐創(chuàng)新訓(xùn)練計(jì)劃項(xiàng)目(2012JSSPITP3853)的資助,共分為兩期進(jìn)行,一期完成郵件附件過(guò)濾部分的設(shè)計(jì),二期完成系統(tǒng)Web端的設(shè)計(jì)與開(kāi)發(fā).目前企業(yè)內(nèi)部的郵件服務(wù)器一般不帶有智能化的郵件處理和分析功能,時(shí)間一長(zhǎng),大量滯留在服務(wù)器上的傳輸文件,將給服務(wù)器帶來(lái)巨大的負(fù)擔(dān)[1-3].使用該項(xiàng)技術(shù)后,將為一大批企業(yè)解決郵件服務(wù)器數(shù)據(jù)冗余問(wèn)題.
James,Java Apache郵件服務(wù)器(Java Apache Mail Enterprise Server)技術(shù)由Apache組織開(kāi)發(fā),是一個(gè)輕便、安全、純Java實(shí)現(xiàn)的SMTP和POP3郵件服務(wù)器.基于James開(kāi)發(fā)的郵件服務(wù)器,可以具有NNTP新聞服務(wù)器的功能,同時(shí)James還是一個(gè)郵件應(yīng)用平臺(tái).Apache組織開(kāi)發(fā)了一套Java API、mialet API,利用該技術(shù)可以根據(jù)自己的需求,使用Java語(yǔ)言編寫(xiě)代碼,對(duì)郵件進(jìn)行個(gè)性化處理.mailet可以進(jìn)行自動(dòng)回復(fù)、更新數(shù)據(jù)庫(kù)、阻止垃圾郵件、建立消息文檔,以及任何用戶可以提出和想到的功能.與mailet相關(guān)的消息適配器matcher,該消息適配器可以判斷mailet是否要對(duì)服務(wù)器中的郵件進(jìn)行處理.在本系統(tǒng)中,mailet與matcher[2,4]結(jié)合使用有效區(qū)分公司內(nèi)部和公司外部郵件,并攔截公司內(nèi)部郵件附件[3,5].
項(xiàng)目就是針對(duì)James框架,使用純Java開(kāi)發(fā)的郵件過(guò)濾器[2-5].根據(jù)企業(yè)要求,該過(guò)濾器系統(tǒng)具有嚴(yán)格、有效區(qū)分公司內(nèi)部郵件和外部郵件的功能.將公司內(nèi)部郵件的附件攔截下來(lái)放到服務(wù)器指定的位置上,能有效解決公司內(nèi)部大量郵件附件在公司內(nèi)部服務(wù)器上傳輸時(shí)產(chǎn)生的數(shù)據(jù)冗余問(wèn)題.系統(tǒng)要求對(duì)公司外部郵件不作任何攔截,按照原始路徑發(fā)給各個(gè)公司員工或公司外部人員,附件部分也不作任何處理.處理流程如圖1所示.
圖1 基于James企業(yè)郵件服務(wù)器的郵件過(guò)濾器郵件處理流程圖
整個(gè)項(xiàng)目分為三步設(shè)計(jì),具體如下.(1)搭建基于James框架的郵件服務(wù)器
搭建基于James框架的郵件服務(wù)器,構(gòu)建企業(yè)內(nèi)部用戶環(huán)境和企業(yè)外部用戶環(huán)境.該服務(wù)器可以直接使用,也是成品之一.搭建好的郵件服務(wù)器相對(duì)于其它郵件服務(wù)器具有成本較低和性能可靠性更高的優(yōu)點(diǎn).同時(shí)該服務(wù)器將為后續(xù)項(xiàng)目開(kāi)發(fā)作準(zhǔn)備,提供測(cè)試環(huán)境.
(2)完成基于James郵件附件過(guò)濾器Jar包開(kāi)發(fā)
基于James企業(yè)郵件附件過(guò)濾器的設(shè)計(jì),將結(jié)合James框架技術(shù)、Java技術(shù)開(kāi)發(fā)出具有智能化功能的郵件攔截、郵件篩選和郵件轉(zhuǎn)發(fā)功能的郵件附件過(guò)濾器.并最終生成對(duì)應(yīng)的Jar包.該系統(tǒng)具有智能化、自動(dòng)化和使用方便的特點(diǎn),用戶幾乎感覺(jué)不到其存在.有Jar包較強(qiáng)的實(shí)用價(jià)值和推廣價(jià)值,也助于其他企業(yè)和單位郵件服務(wù)器的改造.
(3)完成本系統(tǒng)的Web端開(kāi)發(fā),實(shí)現(xiàn)預(yù)期功能
采用Java EE技術(shù),使用日本三菱電機(jī)株式會(huì)社指定框架SaStruts,完成本系統(tǒng)對(duì)應(yīng)的Web頁(yè)面,構(gòu)建郵件閱覽平臺(tái).通過(guò)該平臺(tái),用戶可以方便找到被攔截的附件,并獲取郵件收發(fā)情況以及被閱覽的情況.本設(shè)計(jì)不僅可以在模擬環(huán)境上運(yùn)行,也可以進(jìn)行有效推廣.只要在任何一款加載了James框架的郵件服務(wù)器上進(jìn)行該系統(tǒng)的配置,即可使用本項(xiàng)目的成果.
本系統(tǒng)采用了Java EE四層開(kāi)發(fā)模型進(jìn)行整體架構(gòu)設(shè)計(jì)[1].?dāng)?shù)據(jù)庫(kù)層使用My SQL數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì),數(shù)據(jù)持久層、業(yè)務(wù)邏輯層與表示層均使用SaStruts框架來(lái)實(shí)現(xiàn).這種模式采用標(biāo)準(zhǔn)的協(xié)議和技術(shù),不受硬件平臺(tái)和軟件環(huán)境的限制.系統(tǒng)客戶端采用基于Web技術(shù)的B/S架構(gòu),應(yīng)用系統(tǒng)借用現(xiàn)成通用的網(wǎng)頁(yè)瀏覽器作為統(tǒng)一的客戶端用戶界面,使用方便,便于普及.系統(tǒng)服務(wù)端采用Java語(yǔ)言和My SQL數(shù)據(jù)庫(kù)技術(shù),將所有應(yīng)用程序安裝在后臺(tái)服務(wù)器中,這樣便可以被每一種操作系統(tǒng)上的通用瀏覽器所瀏覽,實(shí)現(xiàn)了跨平臺(tái)操作.
郵件附件過(guò)濾分為兩部分實(shí)現(xiàn).
(1)實(shí)現(xiàn)mailet用戶定制類
mailet可以進(jìn)行自動(dòng)回復(fù)、更新數(shù)據(jù)庫(kù)、阻止垃圾郵件、建立消息文檔,以及任何用戶提出和想到的功能.根據(jù)用戶提出的業(yè)務(wù)規(guī)則,該系統(tǒng)的mailet用戶定制類將完成郵件附件過(guò)濾的處理行為,就是將社內(nèi)電子郵件的附件放置服務(wù)器指定位置.具體算法如下.
郵件各種屬性的獲??;recipients內(nèi)容取得;
//郵件正文的修訂
if(contentHTML){如果該郵件是HTML格式,按照改格式書(shū)寫(xiě)正文}
else{否則直接追加正文}
(2)實(shí)現(xiàn)machers用戶定制類
與mailet相關(guān)的消息適配器matcher,該消息適配器可以判斷mailet是否要對(duì)服務(wù)器中的郵件進(jìn)行處理.根據(jù)用戶的業(yè)務(wù)規(guī)則,該系統(tǒng)的matcher用戶定制類將區(qū)分該郵件是否為社內(nèi)郵件.社內(nèi)郵件將完成郵件附件過(guò)濾,社外郵件將不進(jìn)行過(guò)濾.具體算法如下.
//判斷該郵件是否有附件
根據(jù)項(xiàng)目需求,整套系統(tǒng)需要對(duì)指定的公司內(nèi)部用戶帶有附件的郵件進(jìn)行攔截,完成郵件附加文件的異地保存和下載工作.發(fā)信人可以查看發(fā)送的帶有附件的郵件是不是已經(jīng)被下載查收.收件人可以看到該郵件是否帶有附件.如果是公司內(nèi)部員工,可以通過(guò)鏈接直接到服務(wù)器上指定的公共區(qū)下載郵件附件,并啟動(dòng)公司內(nèi)部郵件Web系統(tǒng)進(jìn)行統(tǒng)一的郵件附件下載.如果是公司外部員工,將以常規(guī)模式發(fā)送郵件給對(duì)方.收件人和發(fā)信人可以通過(guò)頁(yè)面查看自己郵箱中具體郵件的收發(fā)情況.
根據(jù)系統(tǒng)功能的要求,系統(tǒng)的業(yè)務(wù)邏輯包含圖2所示的幾個(gè)部分.
根據(jù)外包項(xiàng)目需求,數(shù)據(jù)表包括用戶認(rèn)證表、郵件地址表、郵件詳細(xì)表、附件詳細(xì)表和郵件列表5張表.根據(jù)客戶的要求,表與表之間不涉及外鍵關(guān)聯(lián)關(guān)系.
整個(gè)系統(tǒng)的模塊結(jié)構(gòu)圖如圖3所示.
帶附件的公司內(nèi)部郵件會(huì)被攔截,以Hama.shin@ mnd.co.jp給user1發(fā)送帶附件的郵件為例,該郵件在改造后的CS版中的狀態(tài)如圖4所示.從圖中可以看到,當(dāng)發(fā)送帶附件的郵件時(shí),系統(tǒng)會(huì)攔截郵件的附件,并把附件放到服務(wù)器的指定地址,用戶可通過(guò)訪問(wèn)url路徑啟動(dòng)http請(qǐng)求查看郵件附件.此時(shí)就會(huì)調(diào)用Web頁(yè)面.在 Web端查看該郵件的附件及正文的狀態(tài)(如圖5所示).
圖2 系統(tǒng)業(yè)務(wù)邏輯關(guān)系圖
圖3 系統(tǒng)功能模塊結(jié)構(gòu)圖
圖4 帶附件的公司內(nèi)部郵件(CS版的接收狀態(tài))
圖5 Web端查看郵件附件及正文
基于James技術(shù)的企業(yè)電子郵件附件過(guò)濾系統(tǒng)的開(kāi)發(fā)分兩期進(jìn)行,共歷時(shí)半年,于2012年10月完成,從2012年年底試運(yùn)行至今,獲得日本三菱電機(jī)株式會(huì)社的一致認(rèn)可,系統(tǒng)運(yùn)行效果良好.以該系統(tǒng)為藍(lán)本的2012年江蘇省大學(xué)生實(shí)踐創(chuàng)新訓(xùn)練計(jì)劃項(xiàng)目已順利結(jié)題,得到好評(píng).整套系統(tǒng)投入使用后,減少了社內(nèi)郵件附件冗余,提高郵件服務(wù)器的使用效率.該項(xiàng)技術(shù)可為一大批企業(yè)解決郵件服務(wù)器附件傳輸問(wèn)題,具有較高的市場(chǎng)推廣價(jià)值和實(shí)際應(yīng)用價(jià)值.
[1]趙彥,顧曉燕,郭力子.Java EE框架技術(shù)進(jìn)階式教程[M].北京:清華大學(xué)出版社,2011.
[2]尹斌,江崇禮,董明.基于Java的Web郵件系統(tǒng)[J].計(jì)算機(jī)工程,2004 (7):183-184.
[3]朱玲.基于James的WebMail的設(shè)計(jì)與實(shí)現(xiàn)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2007 (7):38-39.
[4]楊旭士.基于James技術(shù)的企業(yè)電子郵件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2011(4):61-63.
[5]李改,潘維.基于James的郵件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2009 (12):147-150.
【編校:李青】
Design and Implementation of E-Mail Filtering System for Enterprise Based on James Technology
ZHAO Yan
(Internet of Things Engineering Department,Jiangsu Information Technology Vocational College,Wuxi,Jiangsu 214000, China)
With the rapid development of Internet technology,e-mail has become one of the necessary network services.The email filtering system using James framework under Apache open source project as the mail platform,My SQL to design database and SaStruts framework based on Java EE technology to establish enterprise e-mail atttachment filtering system can distinguish between internal and external mail server and thus solve the problem of the retention of excessive attachments.
Java Apache Mail Enterprise Server;SaStruts Frame;Mail Attachment Filter;Java Enterprise Edition
TP393.098
A
1671-5365(2014)06-0111-04
2013-10-08修回:2013-12-27
2012年江蘇省大學(xué)生實(shí)踐創(chuàng)新訓(xùn)練計(jì)劃立項(xiàng)項(xiàng)目(2012JSSPITP3853);江蘇省現(xiàn)代教育技術(shù)研究2013年基金項(xiàng)目“Java EE網(wǎng)絡(luò)精品課程建設(shè)的實(shí)踐研究”(2013-R-26413);江蘇省教育科學(xué)“十二五”規(guī)劃課題重點(diǎn)資助項(xiàng)目“高職軟件技術(shù)專業(yè)Java課程群網(wǎng)絡(luò)教學(xué)平臺(tái)的開(kāi)發(fā)及應(yīng)用研究”;2013年江蘇省大學(xué)生實(shí)踐創(chuàng)新訓(xùn)練計(jì)劃立項(xiàng)項(xiàng)目(201313108012Y)
趙彥(1981-),女,講師/工程師,碩士,研究方向?yàn)檐浖夹g(shù)、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)
時(shí)間:2013-12-30 11:57
http://www.cnki.net/kcms/detail/51.1630.Z.20131230.1157.001.html