【摘要】隨著社會的發(fā)展,科技的進步,作為信息載體的計算機日益顯露出其舉足輕重的地位。當今社會已步入了信息社會,知識經(jīng)濟將成為新世紀的主導產(chǎn)業(yè)。人們傳統(tǒng)的聯(lián)系方式也在不斷的被改變。伴隨著Internet的發(fā)展,電子郵件以其使用簡易、投遞迅速、收費低廉,易于保存、全球暢通無阻等等優(yōu)點被廣泛地應(yīng)用,它使人們的交流方式得到了極大的改變。電子郵件已是人們溝通、交流的重要工具。
【關(guān)鍵詞】現(xiàn)代化;郵件;系統(tǒng)
【中圖號】TP393.098【文獻標示碼】A【文章編號】1005-1074(2009)03-0057-01
1郵件發(fā)送
隨著網(wǎng)絡(luò)應(yīng)用的不斷推廣,電子郵件越來越多的被大家使用。雖然我們往往將電子郵件與Foxmail、Outlook這樣的電子郵件客戶端聯(lián)系起來,但是往往我們也需要自己編程實現(xiàn)發(fā)送接收郵件,例如在一個網(wǎng)站注冊用戶后網(wǎng)站發(fā)出的回執(zhí)mail,或者在網(wǎng)絡(luò)購物的時候,在完成訂單后的幾分鐘之內(nèi)發(fā)送確認電子郵件。對于這樣的需求,我們不能通過已有的郵件客戶端而需要自己編寫郵件發(fā)送或者處理程序。在這里向大家講解一下如何利用JavaMail來實現(xiàn)郵件的收發(fā)。
1.1發(fā)送帶附件的郵件我們平時發(fā)送的郵件主要可以分解成2大部分,一個是發(fā)信人,接信人,主題等郵件標頭,另外一部分是郵件內(nèi)容,它包括了郵件的附件。我們在發(fā)送普通郵件的時候content設(shè)置的類型是\"text/html\",帶上附件后,我們需要把content的類型設(shè)置成Multipart,這時content包括了附件和\"text/html\"類型的正文。在發(fā)mail時需要注意字符集的問題。不但content里要設(shè)置,而且文件名也需要設(shè)置,而且文件也去掉mbp.set File Name(Mime Utility.encode Word(fds.get Name),\"GB2312\",1);這句話,那么你選中的附件還是會帶到郵件里,但是在附件里看不到。可以通過查看郵件大小知道。我們利用這個特點來實現(xiàn)發(fā)送content中寫的是html語言,而且包含圖片信息的郵件。
1.2發(fā)送content中包含html頁面的郵件大家都知道html語言可以帶上圖片鏈接,那么我們在發(fā)送郵件的時候就需要對這些鏈接的圖片做特殊處理。否則在對方接收到郵件的時候會看不到圖片。我們特殊處理的方法就是把它們當成附件發(fā)送,但不顯示在附件里。要做到這些就首先需要對輸入的content進行解析,找到所帶圖片的路徑。然后把content中這段代碼變成。我們在發(fā)送附件的時候用。
1.3接收帶附件的郵件在帶有附件的郵件中,消息的內(nèi)容是Multipart型,這樣我們就需要解析它來得到content和附件(它是發(fā)送帶附件的郵件的逆向過程)。在使用outlook、foxmail這些電子郵件客戶端的時候會發(fā)現(xiàn),我們的郵件被從服務(wù)器上下載下來并且保存到本地硬盤上了,這種方式方便我們離線瀏覽郵件。
2郵件的接收功能的實現(xiàn)
在JavaMail中,接收文本郵件和HTML格式郵件的處理方法基本上是一致的。在這個程序中,首先,由用戶輸入郵件服務(wù)器,由用戶給出郵箱的用戶名和密碼,登陸郵件服務(wù)器查看郵件。此程序,仍然使用HTMT頁面作為用戶輸入信息頁面,之后采用JSP和JavaBean的方法顯示用戶郵箱中郵件的數(shù)目和查看單封郵件。
3郵件過濾
3.1IP地址過濾根據(jù)預先存儲在文本文檔里的IP進行IP地址過濾,當接收到郵件,如果和文本文檔里的IP地址相匹配,則說明這是一封非法郵件,否則是正常郵件。在Java中用Filter實現(xiàn)IP過濾的一種算法。
如何將IP地址轉(zhuǎn)化為十進制數(shù)。我們通常在BBS或網(wǎng)上下載的IP地址數(shù)據(jù)庫中的IP地址并非是我們常見的格式(61.175.232.30),而是這種(1034938398)類型的數(shù)據(jù),看起來這兩個數(shù)據(jù)好像沒有關(guān)連,很復雜,其實并不復雜,以“61.175.232.30”這個IP地址為例,IP地址轉(zhuǎn)換成數(shù)字串方法如下:先將“61.175.232.30”轉(zhuǎn)換為十六進制“3d.af.e8.1e”,然后去掉小數(shù)點后,變?yōu)椤?dafe81e”,最后將這個十六進制數(shù)轉(zhuǎn)換為十進制“1034938398”,那么“61.175.232.30”就變?yōu)椤?034938398”了。其實網(wǎng)上的IP地址過濾解決并非那么復雜,我們可以用“折半查找”法逐步縮小范圍,以求最終解決問題。如果局域網(wǎng)內(nèi)計算機TCP/IP設(shè)置為“指定IP地址”,則檢查重點放在IP地址、子網(wǎng)掩碼、DNS、網(wǎng)關(guān)及WINS的相關(guān)設(shè)置上提到用ip2addr函數(shù)直接讀取IP數(shù)據(jù)庫,二進制文件折半法:0.092,可見二進制文件折半法還比MySQL法略有優(yōu)勢。
3.2域名過濾把一些自定義的域名或一些本來就有的域名存儲在文本文檔里,當接收到郵件,就和文本文檔里的那些域名逐字比較,比完第一個字母就去那些第一個字母和發(fā)過郵件的域名第一個字母不一樣的域名,然后就進行比較第二個,第三個,直到比較完為止,如果比較完的域名和文本文檔里其中一個相匹配,則認為這是一封非法郵件,如果比較完了也沒有一個匹配的就認為正常郵件。JavaMail API中帶的文檔是很有用的。您能夠在JavaMail下的/docs/javadocs/index.html找到他。第二部分主要將分析郵件程式的組件。您能夠通過閱讀文檔來獲得更多這方面的信息。組件發(fā)送郵件需要使用JavaMail,他使對郵件的操作變得簡單易用。
建數(shù)法過濾域名步驟:設(shè)置域名過濾的步驟如下:①打開“安全設(shè)置”主菜單,進入“域名過濾”子菜單。③選中“開啟域名過濾”選項啟用域名過濾功能。③在“生效時間”欄內(nèi)填入您希望本條規(guī)則生效的起始時間和終止時間。時間請按hhmm格式輸入,例如0803,表示8時3分。④在“域名”欄內(nèi)填入被過濾的網(wǎng)部的域名或域名的—部分,為空表示禁止訪問所有網(wǎng)站。如果您在此處填入某一個字符串(不區(qū)分大小寫),則局域網(wǎng)中的計算機將不能訪問所有域名中含有該字符串的網(wǎng)站。⑤選中“啟用”,啟用本條過濾規(guī)則。⑥單擊“保存”完成設(shè)置。
參考文獻
[1]鐘忺,劉春燕.基于JavaMail API的郵件認證與接收[J].計算機與數(shù)字工程,2007,(3)