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

JavaMail郵件簡介及API概述第一篇

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

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

一、郵件服務(wù)器

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

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

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

二、電子郵箱

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

三、電子郵件的傳輸過程

電子郵件的傳輸過程可以用下圖來表示

上圖實(shí)線過程描述:

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

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

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

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

虛線過程與實(shí)線過程類似,不再重復(fù)。

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

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

Session類:

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

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

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

相關(guān)文章

  • 深入理解java中的null“類型”

    深入理解java中的null“類型”

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

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

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

    新手入門Jvm--jvm概覽

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

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

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

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

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

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

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

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

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

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

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

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

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

    SpringBoot MockMvc單元測試的示例代碼

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

最新評論