亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JavaMail API簡介完整介紹

2019-11-18 12:27:18
字體:
來源:轉載
供稿:網友

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜精品久久久久久99热| 亚洲在线免费看| 国产精品吊钟奶在线| 日韩免费av一区二区| 8x拔播拔播x8国产精品| 97视频在线观看网址| 欧美性生活大片免费观看网址| 国产日韩在线精品av| 成人久久一区二区| 神马国产精品影院av| 亚洲欧美日韩精品久久亚洲区| 久久97精品久久久久久久不卡| 欧美电影免费观看大全| 欧美疯狂做受xxxx高潮| 久久视频免费观看| 一区二区三区美女xx视频| 伊人久久精品视频| 视频直播国产精品| 性金发美女69hd大尺寸| 国产精品久久999| 国产精品 欧美在线| 国产精品久在线观看| 国产精品18久久久久久麻辣| 91av在线视频观看| 国产精品一区二区久久久久| 日韩中文字幕在线免费观看| 国产啪精品视频网站| 国产视频久久网| 国产精品九九久久久久久久| 久久精品久久久久电影| 亚洲综合国产精品| 91视频免费网站| 日本午夜精品理论片a级appf发布| 九九热这里只有精品6| 亚洲黄色av女优在线观看| 国产精品视频中文字幕91| 久久久久久com| 91影院在线免费观看视频| 欧美高跟鞋交xxxxhd| 国产精品福利观看| 欧美亚洲成人网| 91成人精品网站| 亚洲第一网站免费视频| 久久久视频免费观看| 久久成年人视频| 日韩精品在线视频| 亚洲精品日产aⅴ| 国产精品视频久久久| 久久久免费电影| 91日本在线观看| 亚洲毛茸茸少妇高潮呻吟| 国产精品久久久| 亚洲一区二区少妇| 亚洲精品日韩在线| 国产亚洲欧美日韩精品| 亚洲午夜国产成人av电影男同| www.xxxx精品| 欧美在线播放视频| 国产成人精品在线观看| 亚洲国产中文字幕在线观看| 久久精品视频在线观看| 国产亚洲欧美aaaa| 中文字幕亚洲无线码在线一区| 国产成人精品999| 中文字幕亚洲精品| 国内精品久久久久久影视8| 亚洲精品色婷婷福利天堂| 海角国产乱辈乱精品视频| 成人国产亚洲精品a区天堂华泰| 国产精品久久久久久久久久ktv| 久久久噜噜噜久久中文字免| 亚洲精品福利资源站| 久久久久久欧美| 性欧美办公室18xxxxhd| 色婷婷av一区二区三区久久| 最新国产成人av网站网址麻豆| 久久久久久久久久久久久久久久久久av| 91久久久在线| 激情成人在线视频| 国产精品免费一区二区三区都可以| 日韩免费精品视频| 亚洲自拍偷拍福利| 欧美专区中文字幕| 欧美精品videosex性欧美| 日韩精品极品在线观看播放免费视频| 亚洲国产欧美一区二区三区久久| 在线成人激情视频| 日产日韩在线亚洲欧美| 精品亚洲一区二区三区在线观看| 大伊人狠狠躁夜夜躁av一区| 欧美日韩亚洲精品一区二区三区| 992tv成人免费影院| 亚洲第一福利视频| 欧美精品在线极品| 日韩精品福利网站| 欧美久久精品一级黑人c片| 久久五月天综合| 国产精品尤物福利片在线观看| 久久精品久久精品亚洲人| 欧美激情亚洲国产| 国产精品福利网| 国产欧美最新羞羞视频在线观看| 91亚洲精品一区二区| 久久精品色欧美aⅴ一区二区| www.亚洲一二| 欧美做受高潮电影o| 欧美性开放视频| 一区二区三区精品99久久| 日韩电影中文字幕在线| 成人情趣片在线观看免费| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久久久久久久久久网站| 日韩av日韩在线观看| 日韩精品日韩在线观看| 国产成人一区二区三区小说| 最近中文字幕日韩精品| 日本sm极度另类视频| 亚洲欧美日韩天堂一区二区| 91免费看片网站| 国产精品精品一区二区三区午夜版| 日韩色av导航| 欧美一级片在线播放| 欧美激情中文字幕乱码免费| 久久精品亚洲一区| 中文字幕在线精品| 精品久久久999| 欧美激情亚洲综合一区| 日韩av不卡电影| 国内精品免费午夜毛片| 日韩av在线高清| 欧美另类极品videosbestfree| 98精品国产自产在线观看| 中文字幕在线观看亚洲| 欧美极品美女视频网站在线观看免费| 中文字幕精品久久久久| 日韩美女毛茸茸| 日韩av免费观影| 红桃av永久久久| 国内外成人免费激情在线视频网站| 亚洲色图校园春色| 上原亚衣av一区二区三区| 在线午夜精品自拍| 国产69精品99久久久久久宅男| 亚洲无限乱码一二三四麻| 久久精视频免费在线久久完整在线看| 97视频免费在线观看| 中文字幕在线精品| 51精品国产黑色丝袜高跟鞋| 精品久久久久久久久久国产| 日韩欧美中文第一页| 亚洲91精品在线观看| 久久久久久久91| 欧美日韩在线视频一区| 日本伊人精品一区二区三区介绍| 欧美日韩国产色视频| 亚洲精品久久久久久久久久久久久| 亚洲乱码av中文一区二区| 欧美日韩国产123| 欧美日本国产在线| 精品少妇一区二区30p| www.精品av.com| 色伦专区97中文字幕| 色综合久久久久久中文网| 久久久久国色av免费观看性色|