趙彥
(江蘇信息職業技術學院物聯網工程系,江蘇無錫214000)
基于James技術的企業電子郵件附件過濾系統
趙彥
(江蘇信息職業技術學院物聯網工程系,江蘇無錫214000)
隨著互聯網技術的飛速發展,電子郵件已經成為必備的網絡服務之一.以Apache開源項目James框架作為郵件收發平臺,My SQL完成后臺數據庫設計,使用基于Java EE技術的SaStruts框架實現的企業電子郵件附件過濾系統,能夠智能區分企業內部郵件和外部郵件,解決郵件服務器上滯留大量附件的問題.
James;SaStruts框架;郵件附件過濾器;Java EE
基于James技術的企業電子郵件附件過濾系統,建立在James框架基礎之上,使用Java技術對原有郵件服務器改造,對傳輸和存儲在該服務器上的電子郵件附件按照企業需求進行過濾,使用Java EE技術SaStruts框架完成郵件瀏覽Web端的設計.整個項目是來自日本三菱電機株式會社的對日外包項目,已在日本三菱電機株式會社投入使用.該項目獲得2012年江蘇省大學生實踐創新訓練計劃項目(2012JSSPITP3853)的資助,共分為兩期進行,一期完成郵件附件過濾部分的設計,二期完成系統Web端的設計與開發.目前企業內部的郵件服務器一般不帶有智能化的郵件處理和分析功能,時間一長,大量滯留在服務器上的傳輸文件,將給服務器帶來巨大的負擔[1-3].使用該項技術后,將為一大批企業解決郵件服務器數據冗余問題.
James,Java Apache郵件服務器(Java Apache Mail Enterprise Server)技術由Apache組織開發,是一個輕便、安全、純Java實現的SMTP和POP3郵件服務器.基于James開發的郵件服務器,可以具有NNTP新聞服務器的功能,同時James還是一個郵件應用平臺.Apache組織開發了一套Java API、mialet API,利用該技術可以根據自己的需求,使用Java語言編寫代碼,對郵件進行個性化處理.mailet可以進行自動回復、更新數據庫、阻止垃圾郵件、建立消息文檔,以及任何用戶可以提出和想到的功能.與mailet相關的消息適配器matcher,該消息適配器可以判斷mailet是否要對服務器中的郵件進行處理.在本系統中,mailet與matcher[2,4]結合使用有效區分公司內部和公司外部郵件,并攔截公司內部郵件附件[3,5].
項目就是針對James框架,使用純Java開發的郵件過濾器[2-5].根據企業要求,該過濾器系統具有嚴格、有效區分公司內部郵件和外部郵件的功能.將公司內部郵件的附件攔截下來放到服務器指定的位置上,能有效解決公司內部大量郵件附件在公司內部服務器上傳輸時產生的數據冗余問題.系統要求對公司外部郵件不作任何攔截,按照原始路徑發給各個公司員工或公司外部人員,附件部分也不作任何處理.處理流程如圖1所示.

圖1 基于James企業郵件服務器的郵件過濾器郵件處理流程圖
整個項目分為三步設計,具體如下.(1)搭建基于James框架的郵件服務器
搭建基于James框架的郵件服務器,構建企業內部用戶環境和企業外部用戶環境.該服務器可以直接使用,也是成品之一.搭建好的郵件服務器相對于其它郵件服務器具有成本較低和性能可靠性更高的優點.同時該服務器將為后續項目開發作準備,提供測試環境.
(2)完成基于James郵件附件過濾器Jar包開發
基于James企業郵件附件過濾器的設計,將結合James框架技術、Java技術開發出具有智能化功能的郵件攔截、郵件篩選和郵件轉發功能的郵件附件過濾器.并最終生成對應的Jar包.該系統具有智能化、自動化和使用方便的特點,用戶幾乎感覺不到其存在.有Jar包較強的實用價值和推廣價值,也助于其他企業和單位郵件服務器的改造.
(3)完成本系統的Web端開發,實現預期功能
采用Java EE技術,使用日本三菱電機株式會社指定框架SaStruts,完成本系統對應的Web頁面,構建郵件閱覽平臺.通過該平臺,用戶可以方便找到被攔截的附件,并獲取郵件收發情況以及被閱覽的情況.本設計不僅可以在模擬環境上運行,也可以進行有效推廣.只要在任何一款加載了James框架的郵件服務器上進行該系統的配置,即可使用本項目的成果.
本系統采用了Java EE四層開發模型進行整體架構設計[1].數據庫層使用My SQL數據庫進行設計,數據持久層、業務邏輯層與表示層均使用SaStruts框架來實現.這種模式采用標準的協議和技術,不受硬件平臺和軟件環境的限制.系統客戶端采用基于Web技術的B/S架構,應用系統借用現成通用的網頁瀏覽器作為統一的客戶端用戶界面,使用方便,便于普及.系統服務端采用Java語言和My SQL數據庫技術,將所有應用程序安裝在后臺服務器中,這樣便可以被每一種操作系統上的通用瀏覽器所瀏覽,實現了跨平臺操作.
郵件附件過濾分為兩部分實現.
(1)實現mailet用戶定制類
mailet可以進行自動回復、更新數據庫、阻止垃圾郵件、建立消息文檔,以及任何用戶提出和想到的功能.根據用戶提出的業務規則,該系統的mailet用戶定制類將完成郵件附件過濾的處理行為,就是將社內電子郵件的附件放置服務器指定位置.具體算法如下.

郵件各種屬性的獲取;recipients內容取得;
//郵件正文的修訂
if(contentHTML){如果該郵件是HTML格式,按照改格式書寫正文}
else{否則直接追加正文}

(2)實現machers用戶定制類
與mailet相關的消息適配器matcher,該消息適配器可以判斷mailet是否要對服務器中的郵件進行處理.根據用戶的業務規則,該系統的matcher用戶定制類將區分該郵件是否為社內郵件.社內郵件將完成郵件附件過濾,社外郵件將不進行過濾.具體算法如下.

//判斷該郵件是否有附件


根據項目需求,整套系統需要對指定的公司內部用戶帶有附件的郵件進行攔截,完成郵件附加文件的異地保存和下載工作.發信人可以查看發送的帶有附件的郵件是不是已經被下載查收.收件人可以看到該郵件是否帶有附件.如果是公司內部員工,可以通過鏈接直接到服務器上指定的公共區下載郵件附件,并啟動公司內部郵件Web系統進行統一的郵件附件下載.如果是公司外部員工,將以常規模式發送郵件給對方.收件人和發信人可以通過頁面查看自己郵箱中具體郵件的收發情況.
根據系統功能的要求,系統的業務邏輯包含圖2所示的幾個部分.
根據外包項目需求,數據表包括用戶認證表、郵件地址表、郵件詳細表、附件詳細表和郵件列表5張表.根據客戶的要求,表與表之間不涉及外鍵關聯關系.
整個系統的模塊結構圖如圖3所示.
帶附件的公司內部郵件會被攔截,以Hama.shin@ mnd.co.jp給user1發送帶附件的郵件為例,該郵件在改造后的CS版中的狀態如圖4所示.從圖中可以看到,當發送帶附件的郵件時,系統會攔截郵件的附件,并把附件放到服務器的指定地址,用戶可通過訪問url路徑啟動http請求查看郵件附件.此時就會調用Web頁面.在 Web端查看該郵件的附件及正文的狀態(如圖5所示).

圖2 系統業務邏輯關系圖

圖3 系統功能模塊結構圖

圖4 帶附件的公司內部郵件(CS版的接收狀態)

圖5 Web端查看郵件附件及正文
基于James技術的企業電子郵件附件過濾系統的開發分兩期進行,共歷時半年,于2012年10月完成,從2012年年底試運行至今,獲得日本三菱電機株式會社的一致認可,系統運行效果良好.以該系統為藍本的2012年江蘇省大學生實踐創新訓練計劃項目已順利結題,得到好評.整套系統投入使用后,減少了社內郵件附件冗余,提高郵件服務器的使用效率.該項技術可為一大批企業解決郵件服務器附件傳輸問題,具有較高的市場推廣價值和實際應用價值.
[1]趙彥,顧曉燕,郭力子.Java EE框架技術進階式教程[M].北京:清華大學出版社,2011.
[2]尹斌,江崇禮,董明.基于Java的Web郵件系統[J].計算機工程,2004 (7):183-184.
[3]朱玲.基于James的WebMail的設計與實現[J].農業網絡信息,2007 (7):38-39.
[4]楊旭士.基于James技術的企業電子郵件系統設計與實現[J].計算機與現代化,2011(4):61-63.
[5]李改,潘維.基于James的郵件系統設計與實現[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年江蘇省大學生實踐創新訓練計劃立項項目(2012JSSPITP3853);江蘇省現代教育技術研究2013年基金項目“Java EE網絡精品課程建設的實踐研究”(2013-R-26413);江蘇省教育科學“十二五”規劃課題重點資助項目“高職軟件技術專業Java課程群網絡教學平臺的開發及應用研究”;2013年江蘇省大學生實踐創新訓練計劃立項項目(201313108012Y)
趙彥(1981-),女,講師/工程師,碩士,研究方向為軟件技術、計算機網絡、數據庫
時間:2013-12-30 11:57
http://www.cnki.net/kcms/detail/51.1630.Z.20131230.1157.001.html