欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaMail郵件簡(jiǎn)介及API概述第一篇

 更新時(shí)間:2016年12月22日 15:19:50   作者:汪先森  
這篇文章主要為大家詳細(xì)介紹了JavaMail郵件簡(jiǎn)介及API概述第一篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

現(xiàn)如今,電子郵件在我們的生活當(dāng)中扮演著越來(lái)越重要的角色,我們每個(gè)人幾乎都會(huì)與其打交道(至少時(shí)不時(shí)我們都會(huì)接收到莫名其妙的垃圾郵件),在工作中,使用郵件進(jìn)行交流溝通,可以使我們的工作有跡可循,也顯的較為正式,這是由我們?nèi)藶槭止げ僮鞯?,在生活中,在某網(wǎng)站注冊(cè)了一個(gè)賬戶(hù)之后,該網(wǎng)站就會(huì)自動(dòng)發(fā)送一封歡迎郵件并讓我們確認(rèn)是否注冊(cè),以防止惡意注冊(cè),當(dāng)然,這個(gè)就不可能像我們工作中手工方式來(lái)進(jìn)行操作了,Java的13種核心技術(shù)中的JavaMail為我們提供了API來(lái)對(duì)郵件進(jìn)行相關(guān)的操作。

一、郵件服務(wù)器

要在Internet上提供電子郵件功能,必須有專(zhuān)門(mén)的電子郵件服務(wù)器。Internet上架設(shè)了大量的電子郵件服務(wù)器,例如,sina.com、qq.com、163.com等網(wǎng)站提供了面向公眾免費(fèi)的電子郵件服務(wù)器,許多公司也提供了面向內(nèi)部員工的電子郵件服務(wù)器,這些電子郵件服務(wù)器彼此之間都可以發(fā)送和接收電子郵件。那郵件服務(wù)器的作用是什么呢,它可以幫我們把郵件發(fā)出去,也可以幫我們把郵件接收進(jìn)來(lái),還可以為我們提供取郵件的服務(wù),這個(gè)類(lèi)似于現(xiàn)實(shí)生活中的郵局,既可以接收郵件,也可以為我們?nèi)∴]件提供服務(wù),還可以幫我們發(fā)送郵件。下面的圖片形象的說(shuō)明了郵件服務(wù)器的功能

(1)接收用戶(hù)投遞的郵件;
(2)將用戶(hù)投遞進(jìn)來(lái)的郵件轉(zhuǎn)發(fā)給目標(biāo)郵件服務(wù)器;
(3)接收其他郵件服務(wù)器轉(zhuǎn)發(fā)來(lái)的郵件并把郵件存儲(chǔ)到其管理的用戶(hù)郵箱中;
(4)為前來(lái)讀取郵件的用戶(hù)提供讀取服務(wù)。

郵件服務(wù)器按通訊協(xié)議可以劃分為兩種類(lèi)型:SMTP服務(wù)器和POP3/IMAP服務(wù)器,上圖中的1、2、3的功能就是由SMTP服務(wù)器完成的,而4的功能則是由POP3服務(wù)器完成的。

二、電子郵箱

每個(gè)電子郵件服務(wù)器之上都可以開(kāi)設(shè)多個(gè)電子郵箱,電子郵箱也稱(chēng)之為E-mail地址,它類(lèi)似現(xiàn)實(shí)生活中的通訊地址,用戶(hù)可通過(guò)這個(gè)地址接收別人發(fā)來(lái)的電子郵件和向別人發(fā)送電子郵件。電子郵箱的獲得需要在郵件服務(wù)器上進(jìn)行申請(qǐng),確切地說(shuō),電子郵箱其實(shí)就是用戶(hù)在郵件服務(wù)器上申請(qǐng)的一個(gè)帳戶(hù)。郵件服務(wù)器把接收到的郵件保存到為某個(gè)帳戶(hù)所分配的郵箱空間中(所以我們需要定期清理我們的郵件,否則超過(guò)了分配的空間則無(wú)法接收到新的郵件),用戶(hù)通過(guò)其申請(qǐng)的用戶(hù)名和密碼登陸到郵件服務(wù)器上查收該地址已收到的電子郵件。

三、電子郵件的傳輸過(guò)程

電子郵件的傳輸過(guò)程可以用下圖來(lái)表示

上圖實(shí)線(xiàn)過(guò)程描述:

1、lisi@sina.com的郵件客戶(hù)端與sina的SMTP服務(wù)器建立網(wǎng)絡(luò)連接,并以lisi的用戶(hù)名和密碼進(jìn)行登錄后,使用SMTP協(xié)議把郵件發(fā)送給sina的SMTP服務(wù)器;

2、sina的SMTP服務(wù)器收到lisi@sina.com提交的地址郵件后,首先根據(jù)收件人的地址后綴判斷接收者的郵件地址是否屬于該SMTP服務(wù)器的管轄范圍,如果是就直接把郵件存儲(chǔ)到收件人的郵箱中,否則,sina的SMTP服務(wù)器向DNS服務(wù)器查詢(xún)收件人的郵件地址后綴(sohu.com)所表示的域名的MX記錄,從而得到sohu的SMTP服務(wù)器信息,然后與soho的SMTP服務(wù)器建立連接并采用SMTP協(xié)議把郵件發(fā)送給sohu的SMTP服務(wù)器;

3、soho的SMTP服務(wù)器收到sina的SMTP服務(wù)器發(fā)來(lái)的電子郵件后,也將根據(jù)收件人的地址判斷該郵件是否屬于該SMTP服務(wù)器的管轄范圍,如果是的話(huà)就直接把郵件存儲(chǔ)到收件人的郵箱中,否則,sohu的SMTP服務(wù)器可能繼續(xù)轉(zhuǎn)發(fā)這封郵件;

4、wangwu@sohu.com賬號(hào)通過(guò)客戶(hù)端與soho的POP3/IMAP服務(wù)器建立網(wǎng)絡(luò)連接,并成功登錄后,然后通過(guò)POP3/IMAP協(xié)議查看wangwu@sohu.com郵箱中是否有新郵件,如果有,則使用POP3或IMAP協(xié)議讀取郵箱中的郵件。

虛線(xiàn)過(guò)程與實(shí)線(xiàn)過(guò)程類(lèi)似,不再重復(fù)。

JavaMail API是Sun公司為方便Java開(kāi)發(fā)人員在應(yīng)用程序中實(shí)線(xiàn)郵件發(fā)送和接收功能而通過(guò)的一套標(biāo)準(zhǔn)開(kāi)發(fā)包,它支持一些常用的郵件協(xié)議,如SMTP、POP3、IMAP和MIME等。要用這套API,當(dāng)然需要先下載相關(guān)jar包,最新版本1.5.6,下載地址:https://java.net/projects/javamail/pages/Home

JavaMail API按其功能劃分通??煞譃槿缦氯箢?lèi):
1、創(chuàng)建和解析郵件內(nèi)容的API :Message類(lèi)是創(chuàng)建和解析郵件的核心API,它的實(shí)例對(duì)象代表一封電子郵件;
2、發(fā)送郵件的API:Transport類(lèi)是發(fā)送郵件的核心API類(lèi),它的實(shí)例對(duì)象代表實(shí)現(xiàn)了某個(gè)郵件發(fā)送協(xié)議的郵件發(fā)送對(duì)象,例如SMTP協(xié)議;
3、接收郵件的API:Store類(lèi)是接收郵件的核心API類(lèi),它的實(shí)例對(duì)象代表實(shí)現(xiàn)了某個(gè)郵件接收協(xié)議的郵件接收對(duì)象,例如POP3協(xié)議。

Session類(lèi):

Session類(lèi)用于定義整個(gè)應(yīng)用程序所需的環(huán)境信息,以及收集客戶(hù)端與郵件服務(wù)器建立網(wǎng)絡(luò)連接的會(huì)話(huà)信息,如郵件服務(wù)器的主機(jī)名、端口號(hào)、采用的郵件發(fā)送和接收協(xié)議等。Session對(duì)象根據(jù)這些信息構(gòu)建用于郵件收發(fā)的Transport和Store對(duì)象,以及為客戶(hù)端創(chuàng)建Message對(duì)象時(shí)提供信息支持。

以上4個(gè)類(lèi)的關(guān)系如下所示:

以上內(nèi)容大部分摘抄自《Java郵件開(kāi)發(fā)詳解》一書(shū)。下一篇JavaMail入門(mén)第二篇 創(chuàng)建郵件將介紹如何使用JavaMail提供的API創(chuàng)建郵件。

相關(guān)文章

  • 深入理解java中的null“類(lèi)型”

    深入理解java中的null“類(lèi)型”

    這篇文章主要介紹了深入理解java中的null“類(lèi)型”,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • java實(shí)現(xiàn)科學(xué)計(jì)算器的全過(guò)程與代碼

    java實(shí)現(xiàn)科學(xué)計(jì)算器的全過(guò)程與代碼

    最近編寫(xiě)了一個(gè)功能較全面的科學(xué)計(jì)算器,該計(jì)算器不僅能進(jìn)行加、減、乘、除等混合運(yùn)算,而且能計(jì)算sin、cos、tan、log等函數(shù)的值,還要具有清零、退格、求倒數(shù)、求相反數(shù)等功能,這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)科學(xué)計(jì)算器的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 新手入門(mén)Jvm--jvm概覽

    新手入門(mén)Jvm--jvm概覽

    JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫(xiě),JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的
    2021-06-06
  • 淺談Java基礎(chǔ)知識(shí)之BigDecimal

    淺談Java基礎(chǔ)知識(shí)之BigDecimal

    我們又來(lái)回顧Java基礎(chǔ)知識(shí)啦,今天講的是BigDecimal的基本使用以及異常處理,下文中有非常詳細(xì)的代碼示例以及注釋哦,需要的朋友可以參考下
    2021-05-05
  • Java實(shí)現(xiàn)三子棋小游戲

    Java實(shí)現(xiàn)三子棋小游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)三子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Spring.Net控制反轉(zhuǎn)IoC入門(mén)使用

    Spring.Net控制反轉(zhuǎn)IoC入門(mén)使用

    這篇文章主要為大家詳細(xì)介紹了Spring.Net控制反轉(zhuǎn)IoC入門(mén)使用的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • java項(xiàng)目中使用 Lombok遇到的問(wèn)題小結(jié)

    java項(xiàng)目中使用 Lombok遇到的問(wèn)題小結(jié)

    這篇文章主要介紹了java項(xiàng)目中使用 Lombok遇到的問(wèn)題小結(jié),需要的朋友可以參考下
    2018-07-07
  • Java中Lambda表達(dá)式的使用詳解

    Java中Lambda表達(dá)式的使用詳解

    Lambda 表達(dá)式,也可稱(chēng)為閉包,它是推動(dòng) Java 8 發(fā)布的最重要新特性。Lambda 允許把函數(shù)作為一個(gè)方法的參數(shù)(函數(shù)作為參數(shù)傳遞進(jìn)方法中)。使用 Lambda 表達(dá)式可以使代碼變的更加簡(jiǎn)潔緊湊
    2021-09-09
  • 一文探索Apache HttpClient如何設(shè)定超時(shí)時(shí)間

    一文探索Apache HttpClient如何設(shè)定超時(shí)時(shí)間

    Apache HttpClient是一個(gè)流行的Java庫(kù),用于發(fā)送HTTP請(qǐng)求,這篇文章主要為大家介紹了Apache HttpClient如何設(shè)定超時(shí)時(shí)間,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-10-10
  • SpringBoot MockMvc單元測(cè)試的示例代碼

    SpringBoot MockMvc單元測(cè)試的示例代碼

    這篇文章主要介紹了SpringBoot MockMvc單元測(cè)試的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11

最新評(píng)論