




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
郵件過濾系統PAGE36PAGE37摘要近年來,E-mail日益普及,在網絡管理中出現了一種新問題——垃圾郵件泛濫。本文對垃圾郵件進行分析、處理,并著重討論電子郵件的智能過濾的技術。郵件過濾系統是基于黑名單技術、白名單技術、個人關鍵字和系統關鍵字等技術開發出來的,其使用的語言是java,服務器是tomcat,框架為流行的struts+spring+hibernate。本文根據當前的現實需求,對垃圾郵件處理的各項關鍵技術進行了針對性研究,使用了對用戶和內容進行過濾的垃圾郵件過濾系統。該系統的體系結構具有可擴展性,能夠適應于多種垃圾郵件過濾,同時支持對于垃圾郵件的自動發現和實時攔截兩種功能,并針對垃圾郵件種類未知和數量巨大的特點,使用高性能聚類算法,以實現對于垃圾郵件的自動發現。該系統是在服務器的一個多技術整合的垃圾郵件過濾系統,而且通過對各種技術的結合來彌補單一過濾技術的缺點,從而達到有效過濾垃圾郵件的目的。關鍵詞:垃圾郵件;過濾;監測;攔截AbstractInrecentyears,E-mailtheincreasingpopularity,inthenetworkmanagement,therewasanewproblem-spamflood.Thispapercarriesontheanalysis,thejunkmailprocessing,andemphasizingondiscussingtheintelligenceoftheE-mailfilteringtechnology.Emailfilteringsystemisbasedontheblacklisttechnology,whitelisttechnology,personalkeywordsuchaskeysandsystemtechnologydevelopmentoutof,theuseofthelanguageisJava,serveristomcat,frameworkforpopularstruts+spring+hibernate.Inthispaper,accordingtotherealityofthecurrentdemand,tojunkmailprocessingthekeytechnologiesusedinthespecificresearch,theuseoftheuserandfiltercontentofspamfilteringsystem.Thesystemstructurehastheextendibility,canadaptto,inavarietyofspamfiltering,andsupportforspamtoautomaticallydiscoverandreal-timeintercepttwofunctions,andinthelightofthespamtypeunknownandthelargenumberoffeatures,theclusteringalgorithmwithhighperformance,inordertorealizetheautomaticfoundforspam.Thesystemisintheserverformorethanatechnologyintegrationofspamfilteringsystem,andthroughvarioustechniquecombinedwithfilteringtechnologytomakeupforasingledefect,soastoachievethepurposeofeffectivelyfilterspam.Keywords:Spam;Filtering;Monitoring;intercept
目錄第1章緒論 11.1系統開發背景 11.2系統研究目的和意義 11.3可行性分析 2第2章系統需求分析 52.1用戶功能需求分析 52.2系統性能要求 62.3業務流程分析 6第3章系統總體設計 93.1系統功能模塊分析 93.1.1用戶注冊 93.1.2用戶登錄 93.1.3用戶管理 93.1.4郵件服務器信息管理 103.1.5數據管理 103.1.6郵件管理 103.2實體聯系圖 103.3系統總體設計 14第4章系統詳細設計 194.1開發工具簡介 194.2用戶界面設計 214.2.1登錄界面 214.2.2寫信及過濾界面 254.2.3郵件查看界面 321.收件箱 322.發件箱和垃圾箱 33第5章軟件測試和調試 345.1測試的目標 345.2測試的方法 34第6章工作總結和展望 35參考文獻 36致謝 37第1章緒論1.1系統開發背景Internet的迅速發展,人與人的交往更加快捷方便,電子郵件(E-mail,Electronicmail)成為信息交互的重要工具,人們用它交2005流思想、傳輸文件、發表意見等。據IDC調查,2000年全球日平均發送郵件超過100億封,到年將達350億封以上。E-mail的日益普及,我們注意到網絡管理面臨著新問題——垃圾郵件的泛濫。所謂垃圾郵件主要有兩類,一類是名目繁多的商業廣告,另一類是非法團體為其政治、經濟等目的,進行的“網絡宣傳”。后者的危害性顯然遠遠大于前者。垃圾郵件耗費了有限的網絡資源,反動郵件嚴重破壞了社會穩定。另外,它還侵犯了個人隱私,浪費了用戶大量時間。所以垃圾郵件的智能分析、自動過濾,是目前研究的一個熱點。目前郵件過濾主要的方法有如下三種:(1)安全認證方法,也就是用戶A向用戶B發送郵件時,必須到用戶B的郵件服務器上先進行登記,得到授權,否則郵件服務器拒絕接收。雖然有效地防止未經認證的用戶發來郵件,具有很高的安全性,但影響了郵件的易用性;(2)基于規則的方法,很多時候是基于關鍵詞匹配的郵件過濾,雖然能夠處理郵件頭和正文,但是實質還是生硬的二值判斷,局限在二維空間上進行處理,缺少可信度的知識,同時要求用戶自己定義規則,對用戶的素質要求高,用戶需要花費很多時間定義自己的規則,如果用戶的興趣發生變化,規則也要進行很大的改變,另外規則的純粹人工定制,可能考慮并不周全;(3)統計的方法,可以不考慮具體的語義環境,但是只能區分合法郵件和垃圾郵件,很難進行分類。基于上述情況,本文從電子郵件的體系結構及傳輸協議入手,設計了基于“用戶個性化”的垃圾郵件智能分析過濾概念系統模型,充分考慮到了現有方法的優點和缺陷。1.2系統研究目的和意義電子郵件是最常用的網絡應用之一,已經成為網絡交流溝通的重要途徑。但是,垃圾郵件(spam)煩惱大多數人,近來的調查顯示,93%的被調查者都對他們接收到的大量垃圾郵件非常不滿。一些簡單的垃圾郵件事件也造成了很有影響的安全問題。日益增加的垃圾郵件現在會造成1年94億美元的損失(來自中國byte上一則新聞的數據),在一些文章表明,垃圾郵件可能會花費一個公司內每個用戶600到1000美元。垃圾郵件隨著互聯網的不斷發展而大量增長,不再像以前一樣,只是小小的一個騷擾,現在的垃圾郵件可以說是鋪天蓋地了。最初,垃圾郵件主要是一些不請自來的商業宣傳電子郵件,而現在更多的有關色情、政治的垃圾郵件不斷增加,甚至達到了總垃圾郵件量的40%左右,并且仍然有持續增長的趨勢。另一方面,垃圾郵件成了計算機病毒新的、快速的傳播途徑。而且目前世界上50%的郵件都是垃圾郵件,只有少數組織承擔責任。很多反垃圾郵件的措施都被提出出來,但是只有非常少的被實施了。不幸的是,這些解決辦法也都還不能完全阻止垃圾郵件,而且還對正常的郵件來往產生影響。基于上述情況我們研究了郵件過濾系統,此系統的研究目的和意義就是防止垃圾郵件占用大量的傳輸、存儲和運算資源,造成巨大的資源浪費,危害信息安全系統,破壞國內外互聯互通性,損害了ISP的市場形象,造成無形資產流失。防止少數別有用心者利用垃圾郵件散播各種虛假信息或有害信息,嚴重危害了社會的穩定。1.3可行性分析該系統采用MyEclipse10.0軟件作為工具進行系統開發。MyEclipse10.0工具軟件以其功能強大、使用靈活的數據窗口,其面向對象的開發能力等優勢在數據庫應用程序開發領域占據了領先地位,這些特點為開發功能全面的應用程序創造了良好的條件。因此利用,設它作為開發郵件過濾系統的工具是完全可行的。Tomcat是Apache軟件基金會(ApacheSoftwareFoundation)的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發而成。由于有了Sun的參與和支持,最新的Servlet和JSP規范總是能在Tomcat中得到體現,Tomcat5支持最新的Servlet2.4和JSP2.0規范。因為Tomcat技術先進、性能穩定,而且免費。它運行時占用的系統資源小,擴展性好,支持負載平衡與郵件服務等開發應用系統常用的功能。SSH為struts+spring+hibernate的一個集成框架,是目前較流行的一種Web應用程序開源框架。集成SSH框架的系統從職責上分為四層:表示層、業務邏輯層、數據持久層,以幫助開發人員在短期內搭建結構清晰、可復用性好、維護方便的Web應用程序。其中使用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,利用Hibernate框架對持久層提供支持。具體做法是:用面向對象的分析方法根據需求提出一些模型,將這些模型實現為基本的Java對象,然后編寫基本的DAO接口,并給出Hibernate的DAO實現,采用Hibernate架構實現的DAO類來實現Java類與數據庫之間的轉換和訪問,最后由Spring完成業務邏輯。系統的基本業務流程是:在表示層中,首先通過JSP頁面實現交互界面,負責傳送請求(Request)和接收響應(Response),然后Struts根據配置文件(struts-config.xml)將接收到的Request委派給相應的Action處理。在業務層中,管理服務組件的SpringIoC容器負責向Action提供業務模型(Model)組件和該組件的協作對象數據處理(DAO)組件完成業務邏輯,并提供事務處理、緩沖池等容器組件以提升系統性能和保證數據的完整性。而在持久層中,則依賴于Hibernate的對象化映射和數據庫交互,處理DAO組件請求的數據,并返回處理結果。采用上述開發模型,不僅實現了視圖、控制器與模型的徹底分離,而且還實現了業務邏輯層與持久層的分離。這樣無論前端如何變化,模型層只需很少的改動,并且數據庫的變化也不會對前端有所影響,大大提高了系統的可復用性。而且由于不同層之間耦合度小,有利于團隊成員并行工作,大大提高了開發效率。此郵件過濾系統置方便,功能豐富,修改簡便,非常適合用戶。且對使用人員不需要太多的專業培訓。主要可以應用于日常郵件的管理和發送,特別是管理垃圾郵件的接收。因此具有良好的操作可行性。郵件過濾系統第2章系統需求分析2.1用戶功能需求分析電子郵件作為Internet最為廣泛的應用之一,在人們的工作和生活中扮演著重要的角色,應用的普及使電子郵件技術有了飛速的發展。不僅在普通人的日常生活中,而且,已經成為現代企業內外信息交流的必備工具,據統計Internet上有30%的業務是與電子郵件有關的。企業擁有自己的郵件系統,不僅能夠提升企業形象,而且更重要的是能為企業帶來實際效益。當然作為一個郵件系統要考慮多方面,比如穩定性、安全性等其他一些因素,但由于某些原因,在此只實現最基本的客戶端功能。Java為實現這種功能提供了豐富的類庫,借此,在老師的指導下,我們開始了網絡郵件系統的開發。郵件客戶端讓用戶可以方便地管理郵件服務器上自己的郵件,方便地發送郵件。要達到這個目的,要把用戶的相關個人信息數據,相關的郵件服務器信息(收發郵件的服務器的域名、擁護登陸郵件服務器的帳號等)保存到郵件客戶端所在的服務器上的文件或者數據庫里。為了提高客戶端的響應速度,需要把用戶的郵件保存下來,這樣以后就不用每次都連接到郵件服務器上去獲取郵件了。通過上面的分析,郵件客戶端的主要功能需求分析描述如下:1.注冊新用戶由于是一個支持多用戶的應用,在使用的時候需要有一個登陸的過程,而在應用剛開始提供給使用者使用的時候,不應該規定使用者將以什么樣的帳號登陸,所以需要在登陸界面上提供一個給使用者自己注冊新用戶的功能,這樣可以創建應用的用戶,保存用戶的信息,為登陸做好準備。2.用戶登陸用戶登陸后,進入郵件客戶端的主界面,如果用戶設置了默認郵件服務器,則列出用戶默認郵件服務器上收件箱的所有郵件,在該列表上用戶可以選擇只顯示已讀郵件或者未讀郵件,或者刪除郵件。3.新增郵件服務器用戶第一次使用客戶端的時候,至少要添加一個郵件服務器來收發郵件。郵件服務器的信息包括:服務器名稱、登陸(用戶名和密碼)、是否在該服務器上保留接受過的郵件。提供一個服務器列表,在列表上可以修改、刪除服務器信息。4.修改個人信息提供一個修改用戶個人信息的界面。個人信息有:用戶ID(登陸郵件客戶端的用戶名)、密碼、真實姓名、默認郵件服務器。5.接收郵件用戶登陸的時候自動從默認郵件服務器上收取新郵件,之后再在指定的間隔時間后自動接收新郵件,同時提供一個按扭,用于用戶手動接收郵件。6.發送郵件提供一個郵件發送界面,在該界面上可以讓用戶輸入郵件發送、抄送、密送地址,如果有多個,多個地址間用英文分號隔開,可以編輯上傳附件個數,可以讓用戶把郵件保存為草稿,也可以直接發送郵件。7.數據修改實時生效一部分用戶數據將保存在客戶端的會話里,當用戶通過界面修改這部分數據時,要刷新會話里保存的相應數據。2.2系統性能要求1.安全性該系統的安全性主要是防止他人非法進入系統,從而保證了數據的安全性,數據存儲的完整性和數據的可靠性。2.高效性使用此郵件過濾系統既可以方便用戶及時獲取所需的信息,又可以大大減輕用戶因垃圾郵件帶來的影響,能夠并發處理多個請求服務。3.便捷性本系統的界面友好,操作方便,能夠達到所見即所得的效果,方便用戶的使用。2.3業務流程分析依據系統的需求分析,得到系統的流程圖如圖2-1所示:圖2-1系統流程圖第3章系統總體設計系統總體設計需完成的主要功能是概念和邏輯結構設計,其中概念結構設計是將需求分析得到的用戶需求抽象為概念模型的過程,它是整個數據庫設計的關鍵。邏輯結構設計的任務是把概念結構設計階段設計好的基本E-R圖轉化為與選用DBMS產品所支持的數據模型的邏輯結構。3.1系統功能模塊分析從模擬用戶的角度進行分析,對于一個郵件的客戶端,首先要確定其功能是什么,也就是用戶想要系統做什么工作。有以上需求分析可確定需要建立的模塊有:用戶注冊、用戶登錄、用戶管理、郵件服務器信息管理、郵件管理等。3.1.1用戶注冊該模塊通過點擊登錄界面的“注冊新用戶”按鈕進入,用戶注冊界面,要求用戶輸入:登錄ID,及登錄用戶名,必填,在郵件客戶端中,該ID是唯一的登錄密碼,必填,長度為1—8位顯示名,接收人將看到的名字,一般是真實姓名,長度為1—255個字節3.1.2用戶登錄該模塊的界面就是登錄界面了,該模塊是已注冊用戶進入郵件客戶端的唯一入口。在這里要求用戶輸入登錄ID和密碼,輸入完成后直接按回車鍵或點擊“登錄“按鈕來提交登錄信息。對提交來的用戶名進行校驗,如果校驗不通過,則彈出對話框提示用戶輸入的用戶名或者密碼有誤;如果校驗通過,則在會話中保存用戶的登錄ID,進入郵件客戶端的主界面,并在主界面上提供退出系統的入口。3.1.3用戶管理用戶管理模塊提供給用戶修改個人信息的功能,可修改的個人信息有:登錄密碼、顯示名和默認郵件服務器。修改這些信息后,需要更新會話中保存的數據,讓修改實時生效。3.1.4郵件服務器信息管理該模塊提供一個當前用戶已有的郵件服務器列表,讓用戶添加、修改、刪除郵件服務器信息,實現接收多個服務器上郵件的功能。添加郵件服務器時,需要用戶輸入:服務器名,必填,用戶給該服務器起的名稱,以便于識別,最大航渡為32字節登錄服務器的用戶名,必填,最大長度為255字節登錄服務器的密碼,必填,最大長度為255字節是否在郵件服務器保留郵件備份,即是否在郵件服務器上刪除已經接收下來的郵件,默認為信息都可以修改,修改后需要更新會話中保存的數據3.1.5數據管理進行數據庫的備份、還原,票價的計算等。3.1.6郵件管理該模塊主要包括以下幾個功能:提供撰寫并發送郵件的郵件編輯頁面,在改界面上,用戶需要填寫收件人的郵件地址、郵件主題及內容,可以填寫要抄送或者密送的郵件地址,也可以上傳一個或者多個郵件附件,可以進行發送郵件或者保存郵件為草稿的操作,可以在發送郵件的同時把郵件保存為已發送郵件。提供一個收件箱列表,該列表以粗體字體顯示未讀郵件,可以讓用戶選擇只列出所有郵件、未讀郵件或者已讀郵件。在該列表上用戶可以選擇多個郵件,可以進行刪除多個郵件的操作,在列表上對于每個郵件提供查看郵件詳細內容的連接。提供查看郵件詳細內容的界面,在該界面上顯示郵件的發件人、主題、郵件的正文及附件文件名、文件大小并提供下載連接。在該界面上用戶可以進行刪除郵件,寫回復郵件或者返回收件箱郵件列表的操作。提供一個草稿郵件列表,在該列表上用戶可以選擇多個郵件,同時刪除多個郵件,對于米格郵件提供進入郵件編輯界面。3.2實體聯系圖通過需求分析,現定義以下每個實體的屬性:過濾關鍵字表:郵件表:過濾日志表:種子表:收件人列表:用戶表:系統過濾表:好友列表:1.過濾關鍵字表實體屬性圖如圖3-1所示:2.郵件實體屬性圖如圖3-2所示:3.過濾日志表實體屬性圖如圖3-3所示:4.種子表實體屬性圖如圖3-4所示:5.收件人列表實體屬性圖如圖3-5所示:6.用戶表實體屬性圖如圖3-6所示:7.系統過濾表實體屬性圖如圖3-7所示:8.好友列表實體屬性圖如圖3-8所示:實體之間關系的E-R圖如圖3-9所示:圖3-9總的實體聯系圖3.3系統總體設計系統設置了登錄、用戶管理、郵件服務器信息管理、郵件管理等。由此分析如圖3-10就是系統的總體結構框圖:用例名稱:郵件系統注冊用例標識號:1參與者:用戶簡要說明:用戶填寫自己的基本注冊信息,提交注冊成功返回給用戶自己已填寫的信息。前置條件:用戶用瀏覽器進入本系統,并且是未注冊用戶。基本事件流:用戶進入本系統點擊“用戶注冊”顯示出一個文本框用戶填寫自己的郵箱地址確定后點擊“注冊”注冊成功后返回給用戶自己的郵箱地址用例終止其他事件流A1:在按“注冊”按鈕之前,用戶隨時可以按“返回”按鈕,文本框的內容不保存。返回主頁異常事件流:返回到本系統主頁。注冊未成功返回錯誤信息,用戶確認。后置條件:用戶的信息被保存到系統數據庫。注釋:無p圖3-10系統總體結構框圖圖3-11郵件系統注冊用例圖用例名稱:登陸用例標識號:2參與者:用戶簡要說明:用戶登陸到他的郵箱前置條件:用戶已注冊基本事件流:用戶注冊之后,可點擊“登陸”進入登陸頁面用戶輸入登陸ID,密碼點擊登陸按鈕,進入自己的郵箱用例終止其他事件流:用戶可在此界面,進行注冊用戶取消登陸異常事件流:提示輸入錯誤,用戶確認返回到登陸頁面后置條件:用戶輸入信息正確,進入自己的郵箱注釋:無圖3-12登陸用例圖用例名稱:發送郵件用例標識號:3參與者:用戶簡要說明:用戶發送郵件給收件人前置條件:用戶已登錄基本事件流:1、單擊”寫信”按鈕2、進入發送郵件頁面3、用戶在文本框內編輯收件人,主題,內容信息4、點擊”發送”按鈕,發送郵件5、用例終止其他事件流:1、可以任意添加或刪除附件2、若發送的郵件占用空間太大,則添加不上3、收件人文本框里必須填寫正確的郵箱地址異常事件流:1、提示錯誤信息,用戶確認2、返回到發送郵件頁面后置條件:xx給xx的郵件發送成功再寫一封注釋:無圖3-13發送郵件用例圖用例名稱:接收郵件用例標識號:4參與者:用戶簡要說明:用戶收取郵件,并查看郵件信息前置條件:用戶登錄基本事件流:點擊”收信”按鈕進入查看郵件頁面點擊某行發送的郵件主題,則跳轉到顯示郵內容頁面件閱讀郵件內容返回用例終止其他事件流:若郵件發送的是附件,打開或下載壓縮包到服務器是異常事件流:提示錯誤信息,用戶確認返回到發送郵件頁面后置條件:無注釋:無圖3-14接收郵件用例圖第4章系統詳細設計4.1開發工具簡介該系統采用MyEclipse10.0軟件作為工具進行系統開發。MyEclipse10.0工具軟件以其功能強大、使用靈活的數據窗口,其面向對象的開發能力等優勢在數據庫應用程序開發領域占據了領先地位,這些特點為開發功能全面的應用程序創造了良好的條件。Tomcat是Apache軟件基金會(ApacheSoftwareFoundation)的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發而成。由于有了Sun的參與和支持,最新的Servlet和JSP規范總是能在Tomcat中得到體現,Tomcat5支持最新的Servlet2.4和JSP2.0規范。因為Tomcat技術先進、性能穩定,而且免費。它運行時占用的系統資源小,擴展性好,支持負載平衡與郵件服務等開發應用系統常用的功能。SSH為struts+spring+hibernate的一個集成框架,是目前較流行的一種Web應用程序開源框架。集成SSH框架的系統從職責上分為四層:表示層、業務邏輯層、數據持久層和域模塊層,以幫助開發人員在短期內搭建結構清晰、可復用性好、維護方便的Web應用程序。其中使用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,利用Hibernate框架對持久層提供支持具體做法是:用面向對象的分析方法根據需求提出一些模型,將這些模型實現為基本的Java對象,然后編寫基本的DAO接口,并給出Hibernate的DAO實現,采用Hibernate架構實現的DAO類來實現Java類與數據庫之間的轉換和訪問,最后由Spring完成業務邏輯。Navicat是一套快速、可靠的數據庫管理工具,專為簡化數據庫的管理及降低系統管理成本而設。它的設計符合數據庫管理員、開發人員及中小企業的需要。Navicat是以直覺化的圖形用戶界面而建的,讓你可以以安全并且簡單的方式創建、組織、訪問并共用信息。Navicat是聞名世界、廣受全球各大企業、政府機構、教育機構所信賴,更是各界從業員每天必備的工作伙伴。自2001年以來,Navicat已在全球被下載超過2,000,000次,并且已有超過70,000用戶的客戶群。目前《財富》世界500強中有超過100間公司也都正在使用Navicat。Navicat目前提供多達7種語言供客戶選擇,被公認為全球最受歡迎的數據庫前端用戶介面工具。它可以用來對本機或遠程的MySQL、SQLServer、SQLite、Oracle數據庫進行管理及開發。Navicat的功能足以符合專業開發人員的所有需求,但是對數據庫服務器的新手來說又相當容易學習。有了極完備的圖形用戶介面(GUI),Navicat讓你可以簡便地以安全且簡單的方法創建、組織、訪問和共享信息。Navicat適用于三種平臺-MicrosoftWindows、MacOSX及Linux。它可以讓用戶連接到任何本機或遠程服務器、提供一些實用的數據庫工具如數據模型、數據傳輸、數據同步、結構同步、導入、導出、備份、還原、報表創建工具及計劃以協助管理數據。4.2數據庫設計數據庫在一個信息管理系統中占有非常重要的地位,數據庫結構設計的好壞將直接對應用系統的效率以及實現的效果產生影響。合理的數據庫結構設計可以提高數據存儲的效率,保證數據的完整和一致。本系統主要用到了以下8張表:1.關鍵字:表4-1關鍵字表2.郵件表:表4-2郵件表3.日志信息:表4-3日志表4.種子表:表4-4種子表5.用戶信息:表4-5用戶表6.收件人信息:表4-6收件人表7.系統過濾信息:表4-7系統過濾8.好友信息:表4-8好友4.2用戶界面設計4.2.1登錄界面1.系統主界面圖4-1注冊界面安全提示工具(所用語言:javascript)密碼4類共92個數字10個;小寫字母26個;大寫字母26個;特殊字符30個functionsecretLength(l){ if(l==7){ time="0.006@s"; }elseif(l==8){ time="0.5@s"; }elseif(l==9){ time="50@s" }elseif(l==10){ time="1.1@小時"; number_time="40@s"; }elseif(l==11){ time="4.6@天"; number_time="1.1@小時"; }elseif(l==12){ time="15@個月"; number_time="4.5@天"; }elseif(l==13){ time="50@年"; number_time="6@個月"; }elseif(l==14){ time="1@萬年"; number_time="96@年"; }elseif(l==15){ time="1@百萬年"; number_time="1@萬年"; }elseif(l==16){ time="1@億年"; number_time="1@百萬年"; }elseif(l==17){ time="1@百億年"; number_time="1@億年"; }elseif(l==18){ time="80@百億年"; number_time="0.8@百億年"; }}2.登錄界面圖4-2登錄界面if(parseInt(this.Drag.style.left)<=170){ $("#idDrag,#idDrag2").animate({left:"14px"},100);}else{if(username==""||username==inputName){ $(".checkimg:eq(0)").css("background","url("+project+"/image/base/error.gif)no-repeat"); $("#forlogin").css("display","none"); $("#emailcheck").html("郵箱不能為空"); $("#email").focus(); $("#idDrag").animate({left:"14px"},100);}elseif($("#secret").val().length<6){ $(".checkimg:eq(1)").css("background","url("+project+"/image/base/error.gif)no-repeat"); $("#forlogin").css("display","none"); $("#secret_div").html("密碼長度不能少于六位"); $("#secret").focus(); $("#idDrag").animate({left:"14px"},100);}else{ $.post("/emailfilter/checkUser",{username:username},function(data){if(data=="email已存在"){ $(".checkimg:eq(0)").css("background","url("+project+"/image/base/error.gif)no-repeat"); $("#forlogin").css("display","none"); $("#emailcheck").html("該郵箱已被注冊"); $("#idDrag").animate({left:"14px"},100); }else{ $("#email").val(data); $("#idDrag,#idDrag2").animate({left:"203px"},100); $("#regibox").submit();}else{varusername=$("#email3").val().replace(/\s+/g,"");if(username==""){ $(".checkimg:eq(3)").css("background","url("+project+"/image/base/error.gif)no-repeat"); $("#emailcheck3").html("郵箱不能為空"); $("#forlogin").css("display","none"); $("#email3").focus(); $("#idDrag2").animate({left:"14px"},100);}elseif($("#secret3").val().length<6){ $(".checkimg:eq(4)").css("background","url("+project+"/image/base/error.gif)no-repeat"); $("#secret_div3").html("密碼長度不能少于六位"); $("#forlogin").css("display","none"); $("#secret3").focus(); $("#idDrag2").animate({left:"14px"},100);}else{$("#idDrag,#idDrag2").animate({left:"203px"},100);$("#loginbox").submit();4.2.2寫信及過濾界面1.寫信圖4-3寫信界面 /** *增加一個郵件 *@return */ publicStringadd(){ EmailVOvo=newEmailVO(); System.out.println(sendType); //如果是正常發送 vo.setCreateTime(getTs()); if(sendType.equals("0")){ vo.setSendTime(getTs()); vo.setBillstatus(SendEmailType.yifasong.getShort()); //如果是存草稿 }elseif(sendType.equals("1")){ vo.setIsSend(YesNo.no.getShort()); vo.setBillstatus(SendEmailType.caogaoxiang.getShort()); //如果是定時 }else{ vo.setBillstatus(SendEmailType.yifasong.getShort()); vo.setSendTime(sendType); } vo.setUserPk(getSession("userPk").toString()); vo.setSendUserEmail(getSession("username").toString()); vo.setTitle(title); vo.setContent(content); String[]rec=receive.split(";"); Set<ReceiveUserVO>receiveUserSet=newArraySet<ReceiveUserVO>(); Stringhql="fromUserVOwherename=?"; //過濾郵件第一步:系統過濾郵件 ShortisSysFilter=sysEmailFilter(vo); for(Stringname:rec){ ReceiveUserVOrvo=newReceiveUserVO(); rvo.setIsRead(YesNo.no.getShort()); if(name.trim().endsWith(ActionVO.EMAILABLE)){ name=name.replace(ActionVO.EMAILABLE,""); } Listlist=email.getHibernateTemplate().find(hql,newObject[]{name}); if(list!=null&&list.size()!=0){ UserVOuvo=(UserVO)list.get(0); rvo.setUserPk(uvo); rvo.setEmailPk(vo); //過濾郵件第二步:當系統為過濾才進行個人過濾 if(isSysFpareTo(YesNo.no.getShort())==0){ rvo.setIsFiler(emailFilter(vo,uvo.getUserPk(),uvo.getIsFilter())); }else{ rvo.setIsFiler(YesNo.yes.getShort()); } //設置單據狀態 if(rvo.getIsFiler().compareTo(YesNo.yes.getShort())==0){ rvo.setBillstatus(ReceiveEmailType.lajixiang.getShort()); }else{ rvo.setBillstatus(ReceiveEmailType.shoujianxiang.getShort()); //添加至聯系人不能添加自己不能添加重復的。。。 if(!vo.getUserPk().equals(uvo.getUserPk())){ StringcountSql="selectcount(1)fromsm_userfriendwhereuser_pk=?andfriend_pk=?"; intcount=email.getJdbcTemplate().queryForInt(countSql,newObject[]{vo.getUserPk(),uvo.getUserPk()}); if(count==0){ Stringsql="insertintosm_userfriend(userfriend_pk,user_pk,friend_pk)values(?,?,?)"; email.getJdbcTemplate().update(sql,newObject[]{email.getOID(),vo.getUserPk(),uvo.getUserPk()}); } } } receiveUserSet.add(rvo); } } vo.setReceiveUserSet(receiveUserSet); email.add(vo); //增加之后跳轉到已發送 emailType=AllEmailType.yifasong.getShort().toString(); returngetAll(); }2.系統關鍵字設置圖4-4系統關鍵字過濾界面/***增加*/publicvoidadd(){if(StringUtils.isNotBlank(addContent)){finalString[]args=addArgs.split("&");if(args.length==1){ShortisSystem=newShort(args[0].split("=")[1]);ContentFilterVOvo=newContentFilterVO();vo.setIsSystem(isSystem);vo.setContent(addContent);vo.setUserPk(getSession("userPk").toString());contentFilterBO.getHibernateTemplate().saveOrUpdate(vo);try{//如果是個人設置修改用戶的過濾設置if(isSpareTo(YesNo.no.getShort())==0){Stringsql="selectis_filterfromsm_userwhereuser_pk=?";StringnowFilter=null;StringoldFilter=(String)contentFilterBO.getJdbcTemplate().queryForObject(sql,newObject[]{getSession("userPk")},String.class);if(oldFilter.equals(FilterType.no.getShort().toString())){nowFilter=FilterType.neirongguolv.getShort().toString();}elseif(oldFilter.equals(FilterType.heimingdan.getShort().toString())){nowFilter=FilterType.dushezhi.getShort().toString();}if(nowFilter!=null){Stringupsql="updatesm_usersetis_filter=?whereuser_pk=?";contentFilterBO.getJdbcTemplate().update(upsql,newObject[]{nowFilter,getSession("userPk")});}}}catch(Exceptione){HiddleException.hiddleException(e);}toJson("add");return;}}toJson("unAdd");}系統發件人過濾圖4-5系統發件人過濾界面/** *系統過濾標題或內容 *@paramstr標題或內容 *@paramcontentFilters *@paramuserPk *@return */ privateShortsysEmailFilter(Stringstr,List<Map<String,Object>>contentFilters,StringuserPk){ //如果系統內容過濾不為空 if(contentFilters!=null&&str!=null){ //for循環檢查每個過濾內容 one:for(Map<String,Object>filter:contentFilters){ String[]filters=filter.get("content").toString().split(";"); //如果包含過濾內容的所有關鍵字就yes for(Stringfil:filters){ //title不包含過濾內容的一個關鍵字(并且關鍵字不為空)就檢測下一個 if(!str.contains(fil)&&StringUtils.isNotBlank(fil)){ continueone; } } //記錄系統內容過濾日志 email.log(filter.get("pk").toString(),userPk); returnYesNo.yes.getShort(); } } returnYesNo.no.getShort(); }4.個人關鍵字過濾圖4-6個人關鍵字過濾/** *個人過濾標題或內容 *@paramstr標題或內容 *@paramcontentFilters *@paramuserPk */ privateShortperEmailFilter(Stringstr,List<String>contentFilters,StringuserPk){ //如果系統內容過濾不為空 if(contentFilters!=null&&str!=null){ //for循環檢查每個過濾內容 one:for(Stringfilter:contentFilters){ String[]filters=filter.split(";"); //如果包含過濾內容的所有關鍵字就yes for(Stringfil:filters){ //title不包含過濾內容的一個關鍵字(并且關鍵字不為空)就檢測下一個 if(!str.contains(fil)&&StringUtils.isNotBlank(fil)){ continueone; } } returnYesNo.yes.getShort(); } } returnYesNo.no.getShort();}5.個人收件人過濾圖4-7個人收件人過濾 4.2.3郵件查看界面1.收件箱圖4-8收件箱/** *通過類型獲得5種郵箱 *@paramuserPk *@returnType詳情見AllEmailType */ publicActionVOgetAll(StringuserPk,ShortType,intnowPage,intpageSize){ intfirst=nowPage*pageSize; Stringhql=null; //發件人草稿箱 if(TpareTo(AllEmailType.caogaoxiang.getShort())==0){ hql="fromEmailVOwhereuserPk='"+userPk+"'andbillstatus=1"; //發件人已發送 }elseif(TpareTo(AllEmailType.yifasong.getShort())==0){ hql="fromEmailVOwhereuserPk='"+userPk+"'andbillstatus=0"; //收件人收件箱 }elseif(TpareTo(AllEmailType.shoujianxiang.getShort())==0){ hql="fromReceiveUserVOwhereuserPk='"+userPk+"'andbillstatus=0"; //收件人垃圾箱 }elseif(TpareTo(AllEmailType.lajixiang.getShort())==0){ hql="fromReceiveUserVOwhereuserPk='"+userPk
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JG 3037-1996混凝土標準養護箱
- CJ/T 485-2015生活垃圾滲瀝液卷式反滲透設備
- CJ/T 477-2015超聲波燃氣表
- CJ/T 332-2010城市公用事業互聯互通卡清分清算技術要求
- CJ/T 270-2007聚乙烯塑鋼纏繞排水管
- CJ/T 136-2007給水襯塑復合鋼管
- CJ 247-2007城鎮污水處理廠污泥泥質
- GA 68-2024警用防刺服
- 軟件評測師考試重要概念解讀試題及答案
- 鼻飼護理考試試題及答案
- DBJ50-T-200-2024 建筑樁基礎技術標準
- AI 技術在高中歷史教學中的應用實例2
- 小學黃梅戲《打豬草》課件戲曲進校園
- 山東省山東名校考試聯盟2025年高三4月高考模擬考試物理試卷+答案
- 露天礦安全警示教育
- 2025年旋光度測定法試題及答案
- 河南省漯河市召陵區許慎中學2025屆中考化學模擬試卷含解析
- 中醫在兒童健康保健中的應用
- 《鄒忌諷齊王納諫》比較閱讀82篇(歷年中考語文文言文閱讀試題匯編)(含答案與翻譯)(截至2024年)
- 景區高峰期的安全處理預案
- 2025年高考作文備考之DeepSeek融合寫作:思路、角度、方向、范例
評論
0/150
提交評論