国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

JavaMail API簡(jiǎn)介完整介紹

2019-11-18 12:27:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  javaMail API簡(jiǎn)介
  JavaMail API是一種可選的、能用于讀取、編寫和發(fā)送電子消息的包(標(biāo)準(zhǔn)擴(kuò)展)。您可使用這種包創(chuàng)建郵件用戶代理(Mail User Agent ,MUA) 類型的程序,它類似于Eudora、Pine及Microsoft Outlook這些郵件程序。其主要目的不是像發(fā)送郵件或其他郵件傳輸代理(Mail Transfer Agent,MTA)類型的程序那樣用于傳輸、發(fā)送和轉(zhuǎn)發(fā)消息。換句話說(shuō),用戶可以與MUA類型的程序交互,以閱讀和撰寫電子郵件。MUA依靠MTA處理實(shí)際的發(fā)送任務(wù)。
  
  JavaMail API的設(shè)計(jì)是,為收發(fā)信息提供與協(xié)議無(wú)關(guān)的訪問(wèn)。方式是把該API劃分成兩個(gè)部分:
  • 該API的第一個(gè)部分是本課程的重點(diǎn)。基本上是如何發(fā)送和接收獨(dú)立于提供程序/協(xié)議的消息。
  • 第二個(gè)部分則使用特定的協(xié)議語(yǔ)言,如:SMTP、POP、IMAP和NNTP。假如要讓JavaMail API與服務(wù)器通信,就需要為之提供協(xié)議。由于Sun公司對(duì)特定協(xié)議提供程序有充分的介紹,用戶可以免費(fèi)獲取,所以本課程沒(méi)有介紹創(chuàng)建特定協(xié)議提供程序的內(nèi)容。
  
  復(fù)習(xí)相關(guān)協(xié)議
  在學(xué)習(xí)JavaMail API的深層知識(shí)之前,讓我們回過(guò)頭來(lái)看一看在該API中使用的協(xié)議,本質(zhì)上有4種人們常用的協(xié)議:
  • SMTP
  • POP
  • IMAP
  • MIME
  您還需要了解NNTP及其他一些協(xié)議。理解這些協(xié)議的基本原理有助于您理解如何使用JavaMail API。而該API的設(shè)計(jì)要與協(xié)議無(wú)關(guān),所以不能克服這些基礎(chǔ)協(xié)議的限制。假如選用的協(xié)議不支持某種功能,那么JavaMail API也無(wú)法在其上添加這種功能。(正如您一會(huì)兒就會(huì)看到的,在操作POP協(xié)議時(shí),經(jīng)常會(huì)碰到這種問(wèn)題)。
  
  SMTP
  簡(jiǎn)單郵件傳輸協(xié)議(SMTP)是用于傳送電子郵件的機(jī)制。在JavaMail API環(huán)境中,您的基于JavaMail的程序?qū)⑴c您公司或Internet服務(wù)提供商(ISP)的SMTP服務(wù)器通信。該SMTP服務(wù)器將會(huì)把消息轉(zhuǎn)發(fā)給用作接收消息的SMTP服務(wù)器,最后用戶可通過(guò)POP或IMAP協(xié)議獲取該消息。由于支持身份驗(yàn)證,所以不需要SMTP服務(wù)器是一種開放的轉(zhuǎn)發(fā)器,但需要確保SMTP服務(wù)器配置正確。JavaMail API中沒(méi)有集成用于處理諸如配置服務(wù)器以轉(zhuǎn)發(fā)消息或添加/刪除電子郵件帳戶這一類任務(wù)的功能。
  
  POP
  POP的含義是郵局協(xié)議,當(dāng)前的版本為3,也稱作POP3,該協(xié)議是在RFC 1939中定義的。POP是Internet上的大多數(shù)人用來(lái)接收郵件的機(jī)制。它為每個(gè)用戶的每個(gè)郵箱定義支持,這是它所做的全部工作,也是大多數(shù)問(wèn)題的根源。在使用POP協(xié)議時(shí),人們熟悉的很多功能,如查看收到了多少新郵件消息的功能,POP根本不支持。這些功能都內(nèi)置到諸如Eudora或Microsoft Outlook之類的郵件程序中,能為您記住接收的上一封郵件,以及計(jì)算有多少新郵件這類信息。因此,使用JavaMail API時(shí),假如想獲取這類信息,將需要由自己進(jìn)行計(jì)算。
  IMAP
  IMAP是用于接收消息的更加高級(jí)的協(xié)議,它是在RFC 2060中定義的。IMAP的含義是“Internet消息訪問(wèn)協(xié)議”,當(dāng)前版本是第4版,也稱作IMAP4。使用IMAP時(shí),您的郵件服務(wù)器必須支持該協(xié)議。您不能只是簡(jiǎn)單地把程序轉(zhuǎn)變?yōu)橹С諭MAP,而不是支持POP,就指望能支持IMAP中的一切。假定您的郵件服務(wù)器支持IMAP,那么基于JavaMail的程序就可利用在服務(wù)器上擁有多個(gè)文件夾的用戶,并且這些文件夾可以被多個(gè)用戶共享的功能。
  由于IMAP協(xié)議具有更高級(jí)的功能,您也許會(huì)想IMAP應(yīng)該被每一個(gè)人使用,但事實(shí)不是這樣。因?yàn)镮MAP會(huì)加重郵件服務(wù)器的負(fù)荷,它需要服務(wù)器接收新消息,發(fā)送消息給請(qǐng)求的用戶,并在多個(gè)文件夾中為每個(gè)用戶維護(hù)這些消息。而這要集中備份,因而長(zhǎng)期下去用戶的文件夾會(huì)變得越來(lái)越大,當(dāng)磁盤空間用光了時(shí),每個(gè)人都會(huì)遭受損失。而使用POP協(xié)議時(shí),已保存消息可以解除服務(wù)器的重負(fù)。
  
  MIME
  MIME的含義是“多用途的網(wǎng)際郵件擴(kuò)充協(xié)議”。它不是一種郵件傳輸協(xié)議,相反,它定義傳輸?shù)膬?nèi)容:消息的格式、附件等。許多文檔都定義了MIME協(xié)議,包含:RFC 822、RFC 2045、RFC 2046和RFC 2047。作為JavaMail API的用戶,一般不需要擔(dān)心這些格式。但是,這些格式確實(shí)存在,并為您的程序所用。
  
  NNP和其他協(xié)議
  由于JavaMail API分開了提供程序和其他部分,所以您可以輕松地為附加協(xié)議添加支持。Sun公司提供第3方提供程序清單,這些提供程序要利用 Sun公司不支持的少見的協(xié)議。在這份清單中,您將會(huì)看到對(duì)NNTP(網(wǎng)絡(luò)新聞傳輸協(xié)議)[新聞組]、S/MIME(安全多用途的網(wǎng)際郵件擴(kuò)充協(xié)議)及其他協(xié)議的提供支持的第3方提供程序。
  
  安裝
  目前有兩種版本的JavaMail API最常用:1.2和1.1.3。本課程中的所有例子都適用于這兩種版本。其中JavaMail API 1.2是最新的,而JavaMail API 1.1.3中包含了Java 2企業(yè)版(J2EE)平臺(tái)1.2.1版,所以它仍然很常用。使用JavaMail API的版本會(huì)對(duì)您的下載和安裝產(chǎn)生一些影響。這兩種版本的JavaMail API都能與JDK 1.1.6、Java 2標(biāo)準(zhǔn)版(J2SE)平臺(tái)1.2.x和1.3.x
  協(xié)同工作。
  
  注重:在安裝了Sun公司的JavaMail工具后,會(huì)在演示目錄下看到許多示例程序。
  
  安裝JavaMail 1.2
  要使用JavaMail 1.2 API,可以下載JavaMail 1.2工具,然后解壓縮javamail-1_2.zip文件,并把mail.jar文件添加到典型安裝路徑下。JavaMail 1.2工具帶有SMTP、IMAP4和POP3提供程序以及核心類。
  
  安裝完JavaMail 1.2后,再安裝JavaBeans Activation Framework。
  
  安裝JavaMail 1.1.3
  要使用JavaMail 1.1.3 API,可以下載JavaMail 1.1.3工具,然后解壓縮javamail1_1_3.zip文件,并把mail.jar文件添加到典型安裝路徑下。JavaMail 1.1.3工具帶有SMTP和IMAP4提供程序以及核心類。
  
  假如您想用JavaMail 1.1.3訪問(wèn)POP服務(wù)器,需要下載并安裝POP3提供程序。Sun公司擁有一個(gè)獨(dú)立于 JavaMail 工具的提供程序。在下載并解壓縮pop31_1_1.zip文件后,也還需要把pop3.jar添加到典型安裝路徑下。
  
  安裝完JavaMail 1.1.3后,再安裝JavaBeans Activation Framework。
  
  安裝JavaBeans Activation Framework
  JavaMail API的所有版本都需要JavaBeans Activation Framework(JavaBeans激活框架),這種框架提供了對(duì)輸入任意數(shù)據(jù)塊的支持,并能相應(yīng)地對(duì)其進(jìn)行處理。看上去效果似乎不太好,但該框架是在當(dāng)今的許多瀏覽器和郵件工具中可以找到的基本MIME類型支持。下載該框架后,解壓縮jaf1_0_1.zip文件,并將activation.jar文件添加到典型安裝路徑下。
  對(duì)于JavaMail 1.2用戶,現(xiàn)在應(yīng)該把mail.jar和activation.jar文件添加到典型安裝路徑下。
  對(duì)于JavaMail 1.1.3用戶,現(xiàn)在應(yīng)該把mail.jar、pop3.jar和activation.jar添加到典型安裝路徑下。假如您不打算使用POP3,就不需要把pop3.jar文件添加到典型安裝路徑下。
  假如您不想更改安裝路徑環(huán)境變量,可以把JAR文件復(fù)制到Java運(yùn)行時(shí)環(huán)境(JRE)目錄下的lib/ext目錄下。例如,對(duì)于J2SE 1.3版本,Windows平臺(tái)上的默認(rèn)目錄應(yīng)該是C:/jdk1.3/jre/lib/ext。
  
  使用Java 2企業(yè)版
  假如您使用的是J2EE,則在使用基本JavaMail API時(shí),不需要做什么非凡的工作;JavaMail API帶有J2EE類。只要確保j2ee.jar文件位于典型安裝路徑下,并完成了所有的設(shè)置工作。
  對(duì)于J2EE 1.2.1,POP3提供程序是單獨(dú)提供的,因此需要下載該提供程序,并按安裝JavaMail 1.1.3的步驟,在J2EE 1.2.1中包含POP3提供程序。J2EE 1.3的用戶會(huì)獲得J2EE和POP3提供程序,因而不需要對(duì)POP3提供程序執(zhí)行獨(dú)立安裝。使用這兩種版本的J2EE用戶,都不需要安裝JavaBeans Activation Framework。
  
  練習(xí)
  設(shè)置您的 JavaMail 環(huán)境。
  
  復(fù)習(xí)核心類
  在開始深入研究JavaMail類之前,首先讓用戶瀏覽一下構(gòu)成API的核心類:會(huì)話、消息、地址、驗(yàn)證程序、傳輸,存儲(chǔ)和文件夾。所有這些類都可以在JavaMail API即javax.mail的頂層包中找到,盡管您將頻繁地發(fā)現(xiàn)您自己使用的子類是在javax.mail.internet包中找到的。
  
  session
  Session類定義了一個(gè)基本的郵件會(huì)話。通過(guò)該會(huì)話可讓別的工作順利執(zhí)行。Session對(duì)象利用java.util.PRoperties對(duì)象獲取諸如郵件服務(wù)器、用戶名、密碼等信息,以及其他可在整個(gè)應(yīng)用程序中共享的信息。
  
  Session類的構(gòu)造器是私有的。您可以獲得一個(gè)可被getDefaultInstance()方法共享的單一的默認(rèn)會(huì)話:
  Properties props = new Properties();
  // fill props with any information
  Session session = Session.getDefaultInstance(props, null);
  或者,您可以用getInstance()方法創(chuàng)建一個(gè)獨(dú)特的會(huì)話:
  Properties props = new Properties();
  // fill props with any information
  Session session = Session.getInstance(props, null);
  這兩種情形下的null參數(shù)都是一種Authenticator對(duì)象,它不是在此時(shí)使用的。具體信息請(qǐng)參閱其后的“Autherticator”一節(jié)。
  
  在大多數(shù)情況下,使用共享會(huì)話就足夠了,即使為多個(gè)用戶郵箱處理郵件會(huì)話也是如此。您可以在通信過(guò)程的后面一步添加上用戶名和密碼的組合,并保持所有的一切是獨(dú)立的。
  
  Message類
  一旦創(chuàng)建了自己的Session對(duì)象,就是該去創(chuàng)建要發(fā)送的消息的時(shí)候了。這時(shí)就要用到消息類型。作為一個(gè)抽象類,您必須操作一個(gè)子類,在大多數(shù)情況下,該子類是javax.mail.internet.MimeMessage。一個(gè)MimeMessage是一種理解MIME類型和報(bào)頭(在不同的RFC文檔中均有定義)的消息。消息的報(bào)頭被嚴(yán)格限制成只能使用US-ASCII字符,盡管非ASCII字符可以被編碼到某些報(bào)頭字段中。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 芮城县| 光泽县| 安徽省| 涟水县| 通辽市| 金秀| 滦平县| 巴林右旗| 古浪县| 伊川县| 交城县| 剑阁县| 彭泽县| 布拖县| 莫力| 常熟市| 潍坊市| 中江县| 北海市| 仪陇县| 荔波县| 大渡口区| 浮山县| 饶阳县| 金昌市| 射洪县| 清徐县| 罗平县| 鄂尔多斯市| 宁阳县| 通道| 云霄县| 南江县| 杭锦旗| 淮南市| 锦州市| 米脂县| 昭通市| 南康市| 蒲城县| 盖州市|