3.5 JavaMail(JAVA郵件服務(wù))API詳解
一、JavaMail API簡介
JavaMail API是讀取、撰寫、發(fā)送電子信息的可選包。我們可用它來建立如Eudora、Foxmail、MS Outlook Express一般的郵件用戶代理程序(Mail User Agent,簡稱MUA)。而不是像sendmail或者其它的郵件傳輸代理(Mail Transfer Agent,簡稱MTA)程序那樣可以傳送、遞送、轉(zhuǎn)發(fā)郵件。從另外一個(gè)角度來看,我們這些電子郵件用戶日常用MUA程序來讀寫郵件,而MUA依賴著MTA處理郵件的遞送。
在清楚了到MUA與MTA之間的關(guān)系后,讓我們看看JavaMail API是如何提供信息訪問功能的吧!JavaMail API被設(shè)計(jì)用于以不依賴協(xié)議的方式去發(fā)送和接收電子信息,這個(gè)API被分為兩大部分:
基本功能:如何以不依賴于協(xié)議的方式發(fā)送接收電子信息,這也是本文所要描述的,不過在下文中,大家將看到這只是一廂情愿而已。
第二個(gè)部分則是依賴特定協(xié)議的,比如SMTP、POP、IMAP、NNTP協(xié)議。在這部分的JavaMail API是為了和服務(wù)器通訊,并不在本文的內(nèi)容中。
二、相關(guān)協(xié)議一覽
在我們步入JavaMail API之前,先看一下API所涉及的協(xié)議。以下便是大家日常所知、所樂于使用的4大信息傳輸協(xié)議:
SMTP
POP
IMAP
MIME
當(dāng)然,上面的4個(gè)協(xié)議,并不是全部,還有NNTP和其它一些協(xié)議可用于傳輸信息,但是由于不常用到,所以本文便不提及了。理解這4個(gè)基本的協(xié)議有助于我們更好的使用JavaMail API。然而JavaMail API是被設(shè)計(jì)為與協(xié)議無關(guān)的,目前我們并不能克服這些協(xié)議的束縛。確切的說,如果我們使用的功能并不被我們選擇的協(xié)議支持,那么JavaMail API并不可能如魔術(shù)師一樣神奇的賦予我們這種能力。
1.SMTP
簡單郵件傳輸協(xié)議定義了遞送郵件的機(jī)制。在下文中,我們將使用基于Java-Mail的程序與公司或者ISP的SMTP服務(wù)器進(jìn)行通訊。這個(gè)SMTP服務(wù)器將郵件轉(zhuǎn)發(fā)到接收者的SMTP服務(wù)器,直至最后被接收者通過POP或者IMAP協(xié)議獲取。這并不需要SMTP服務(wù)器使用支持授權(quán)的郵件轉(zhuǎn)發(fā),但是卻的確要注意SMTP服務(wù)器的正確設(shè)置(SMTP服務(wù)器的設(shè)置與JavaMail API無關(guān))。
2.POP
POP是一種郵局協(xié)議,目前為第3個(gè)版本,即眾所周知的POP3。POP定義了一種用戶如何獲得郵件的機(jī)制。它規(guī)定了每個(gè)用戶使用一個(gè)單獨(dú)的郵箱。大多數(shù)人在使用POP時(shí)所熟悉的功能并非都被支持,例如查看郵箱中的新郵件數(shù)量。而這個(gè)功能是微軟的Outlook內(nèi)建的,那么就說明微軟Outlook之類的郵件客戶端軟件是通過查詢最近收到的郵件來計(jì)算新郵件的數(shù)量來實(shí)現(xiàn)前面所說的功能。因此在我們使用JavaMail API時(shí)需要注意,當(dāng)需要獲得如前面所講的新郵件數(shù)量之類的信息時(shí),我們不得不自己進(jìn)行計(jì)算。
3.IMAP
IMAP使用在接收信息的高級協(xié)議,目前版本為第4版,所以也被稱為IMAP4。需要注意的是在使用IMAP時(shí),郵件服務(wù)器必須支持該協(xié)議。從這個(gè)方面講,我們并不能完全使用IMAP來替代POP,不能期待IMAP在任何地方都被支持。假如郵件服務(wù)器支持IMAP,那么我們的郵件程序?qū)⒛軌蚓哂幸韵卤籌MAP所支持的特性:每個(gè)用戶在服務(wù)器上可具有多個(gè)目錄,這些目錄能在多個(gè)用戶之間共享。
其與POP相比高級之處顯而易見,但是在嘗試采取IMAP時(shí),我們認(rèn)識(shí)到它并不是十分完美的:由于IMAP需要從其它服務(wù)器上接收新信息,將這些信息遞送給用戶,維護(hù)每個(gè)用戶的多個(gè)目錄,這都為郵件服務(wù)器帶來了高負(fù)載。并且IMAP與POP的一個(gè)不同之處是POP用戶在接收郵件時(shí)將從郵件服務(wù)器上下載郵件,而IMAP允許用戶直接訪問郵件目錄,所以在郵件服務(wù)器進(jìn)行備份作業(yè)時(shí),由于每個(gè)長期使用此郵件系統(tǒng)的用戶所用的郵件目錄會(huì)占有很大的空間,這將直接導(dǎo)致郵件服務(wù)器上磁盤空間暴漲。
相關(guān)推薦:計(jì)算機(jī)等級考試二級Java經(jīng)典算法大全匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |