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


現如今,電子郵件在我們的生活當中扮演着越來越重要的角色,我們每個人幾乎都會與其打交道(至少時不時我們都會接收到莫名其妙的垃圾郵件),在工作中,使用郵件進行交流溝通,可以使我們的工作有跡可循,也顯的較爲正式,這是由我們人爲手工操作的,在生活中,在某網站註冊了一個賬戶之後,該網站就會自動發送一封歡迎郵件並讓我們確認是否註冊,以防止惡意註冊,當然,這個就不可能像我們工作中手工方式來進行操作了,Java的13種核心技術中的JavaMail爲我們提供了API來對郵件進行相關的操作。

一、郵件服務器

要在Internet上提供電子郵件功能,必須有專門的電子郵件服務器。Internet上架設了大量的電子郵件服務器,例如,sina.com、qq.com、163.com等網站提供了面向公衆免費的電子郵件服務器,許多公司也提供了面向內部員工的電子郵件服務器,這些電子郵件服務器彼此之間都可以發送和接收電子郵件。那郵件服務器的作用是什麼呢,它可以幫我們把郵件發出去,也可以幫我們把郵件接收進來,還可以爲我們提供取郵件的服務,這個類似於現實生活中的郵局,既可以接收郵件,也可以爲我們取郵件提供服務,還可以幫我們發送郵件。下面的圖片形象的說明了郵件服務器的功能

(1)接收用戶投遞的郵件;
(2)將用戶投遞進來的郵件轉發給目標郵件服務器;
(3)接收其他郵件服務器轉發來的郵件並把郵件存儲到其管理的用戶郵箱中;
(4)爲前來讀取郵件的用戶提供讀取服務。

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

二、電子郵箱

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

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

上圖實線過程描述:

1、[email protected]的郵件客戶端與sina的SMTP服務器建立網絡連接,並以lisi的用戶名和密碼進行登錄後,使用SMTP協議把郵件發送給sina的SMTP服務器;

2、sina的SMTP服務器收到[email protected]提交的地址郵件後,首先根據收件人的地址後綴判斷接收者的郵件地址是否屬於該SMTP服務器的管轄範圍,如果是就直接把郵件存儲到收件人的郵箱中,否則,sina的SMTP服務器向DNS服務器查詢收件人的郵件地址後綴(sohu.com)所表示的域名的MX記錄,從而得到sohu的SMTP服務器信息,然後與soho的SMTP服務器建立連接並採用SMTP協議把郵件發送給sohu的SMTP服務器;

3、soho的SMTP服務器收到sina的SMTP服務器發來的電子郵件後,也將根據收件人的地址判斷該郵件是否屬於該SMTP服務器的管轄範圍,如果是的話就直接把郵件存儲到收件人的郵箱中,否則,sohu的SMTP服務器可能繼續轉發這封郵件;

4、[email protected]賬號通過客戶端與soho的POP3/IMAP服務器建立網絡連接,併成功登錄後,然後通過POP3/IMAP協議查看[email protected]郵箱中是否有新郵件,如果有,則使用POP3或IMAP協議讀取郵箱中的郵件。

虛線過程與實線過程類似,不再重複。

 

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

JavaMail API按其功能劃分通常可分爲如下三大類:
1、創建和解析郵件內容的API :Message類是創建和解析郵件的核心API,它的實例對象代表一封電子郵件;
2、發送郵件的API:Transport類是發送郵件的核心API類,它的實例對象代表實現了某個郵件發送協議的郵件發送對象,例如SMTP協議;
3、接收郵件的API:Store類是接收郵件的核心API類,它的實例對象代表實現了某個郵件接收協議的郵件接收對象,例如POP3協議。 

Session類:

Session類用於定義整個應用程序所需的環境信息,以及收集客戶端與郵件服務器建立網絡連接的會話信息,如郵件服務器的主機名、端口號、採用的郵件發送和接收協議等。Session對象根據這些信息構建用於郵件收發的Transport和Store對象,以及爲客戶端創建Message對象時提供信息支持。 

以上4個類的關係如下所示:

下一篇JavaMail入門第二篇 創建郵件將介紹如何使用JavaMail提供的API創建郵件。


文章轉自:文章轉自

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章