JavaMail入門教程之接收郵件(4)
上一篇JavaMail入門第三篇 發(fā)送郵件中,我們學(xué)會(huì)了如何用JavaMail API提供的Transport類發(fā)送郵件,同樣,JavaMail API中也提供了一些專門的類來對(duì)郵件的接收進(jìn)行相關(guān)的操作,在介紹這些類之前,我們先來了解下郵件接收API的體系結(jié)構(gòu),JavaMail API中定義了一個(gè)java.mail.Store類,它用于執(zhí)行郵件的接收任務(wù),我們?cè)诔绦蛑姓{(diào)用這個(gè)類中的方法可以獲取郵箱中的各個(gè)郵件夾的信息。JavaMail使用Folder對(duì)象表示郵件夾,通過Folder對(duì)象的方法可以獲取郵件夾中的所有郵件信息,而我們知道郵件的信息可以使用Message對(duì)象來表示,Message類中就包含了操作郵件的各種方法了,例如獲取郵件的發(fā)送者,主題,正文內(nèi)容,發(fā)送時(shí)間等,它們工作關(guān)系如下:
1、從Session對(duì)象中獲得實(shí)現(xiàn)了某種郵件發(fā)送協(xié)議的Store對(duì)象;
2、登錄郵箱,連接上POP3或者IMAP4服務(wù)器;
3、調(diào)用Store的getFolder方法,獲取郵箱中的某個(gè)郵件夾的Folder對(duì)象;
4、調(diào)用Folder對(duì)象中的getMessage或getMessages方法,獲取郵件夾中的某一封郵件或者是所有郵件,每一封的郵件以一個(gè)Message對(duì)象返回。
接下來我們用以上類來接收郵件
import java.util.Properties; import javax.mail.Address; import javax.mail.Folder; import javax.mail.Message; import javax.mail.Session; import javax.mail.Store; class MailReceives { public static void main(String[] args) throws Exception { // 定義連接POP3服務(wù)器的屬性信息 String pop3Server = "pop.qq.com"; String protocol = "pop3"; String username = "123456@qq.com"; String password = "****************"; // QQ郵箱的SMTP的授權(quán)碼,什么是授權(quán)碼,它又是如何設(shè)置? Properties props = new Properties(); props.setProperty("mail.transport.protocol", protocol); // 使用的協(xié)議(JavaMail規(guī)范要求) props.setProperty("mail.smtp.host", pop3Server); // 發(fā)件人的郵箱的 SMTP服務(wù)器地址 // 獲取連接 Session session = Session.getDefaultInstance(props); session.setDebug(false); // 獲取Store對(duì)象 Store store = session.getStore(protocol); store.connect(pop3Server, username, password); // POP3服務(wù)器的登陸認(rèn)證 // 通過POP3協(xié)議獲得Store對(duì)象調(diào)用這個(gè)方法時(shí),郵件夾名稱只能指定為"INBOX" Folder folder = store.getFolder("INBOX");// 獲得用戶的郵件帳戶 folder.open(Folder.READ_WRITE); // 設(shè)置對(duì)郵件帳戶的訪問權(quán)限 Message[] messages = folder.getMessages();// 得到郵箱帳戶中的所有郵件 for (Message message : messages) { String subject = message.getSubject();// 獲得郵件主題 Address from = (Address) message.getFrom()[0];// 獲得發(fā)送者地址 System.out.println("郵件的主題為: " + subject + "\t發(fā)件人地址為: " + from); System.out.println("郵件的內(nèi)容為:"); message.writeTo(System.out);// 輸出郵件內(nèi)容到控制臺(tái) } folder.close(false);// 關(guān)閉郵件夾對(duì)象 store.close(); // 關(guān)閉連接對(duì)象 } }
控制臺(tái)輸出結(jié)果:
可以看到控制臺(tái)輸出的是郵件的原始內(nèi)容,還未被解析,所以需要經(jīng)過解析才能閱讀,下一篇JavaMail入門第五篇 解析郵件將講解如何解析郵件。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java中javamail發(fā)送帶附件的郵件實(shí)現(xiàn)方法
- Java基于JavaMail實(shí)現(xiàn)向QQ郵箱發(fā)送郵件
- java中javamail收發(fā)郵件實(shí)現(xiàn)方法
- Java程序中使用JavaMail發(fā)送帶圖片和附件的郵件
- JavaMail實(shí)現(xiàn)發(fā)送超文本(html)格式郵件的方法
- struts2集成javamail發(fā)郵件示例詳解
- JavaWeb中使用JavaMail實(shí)現(xiàn)發(fā)送郵件功能實(shí)例詳解
- javamail 發(fā)送郵件的實(shí)例代碼分享
- JavaMail實(shí)現(xiàn)郵件發(fā)送的方法
- Java使用JavaMail API發(fā)送和接收郵件的代碼示例
相關(guān)文章
解讀@ResponseBody與@RequestBody注解的用法
這篇文章主要介紹了Spring MVC中的@ResponseBody和@RequestBody注解的用法,@ResponseBody注解用于將Controller方法的返回對(duì)象轉(zhuǎn)換為指定格式(如JSON)并通過Response響應(yīng)給客戶端,@RequestBody注解用于讀取HTTP請(qǐng)求的內(nèi)容2024-11-11簡(jiǎn)單實(shí)現(xiàn)Java版學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了簡(jiǎn)單實(shí)現(xiàn)Java版學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06Java Web使用Html5 FormData實(shí)現(xiàn)多文件上傳功能
這篇文章主要介紹了Java Web使用Html5 FormData實(shí)現(xiàn)多文件上傳功能,需要的朋友可以參考下2017-07-07關(guān)于Java中靜態(tài)代碼塊的執(zhí)行淺析
這篇文章主要給大家介紹了關(guān)于Java中靜態(tài)代碼塊執(zhí)行的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09SpringBoot定時(shí)任務(wù)多線程實(shí)現(xiàn)示例
在真實(shí)的Java開發(fā)環(huán)境中,我們經(jīng)常會(huì)需要用到定時(shí)任務(wù)來幫助我們完成一些特殊的任務(wù),本文主要介紹了SpringBoot定時(shí)任務(wù)多線程實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12Java實(shí)現(xiàn)訂單超時(shí)自動(dòng)取消的7種方案
在電商、外賣、票務(wù)等系統(tǒng)中,訂單超時(shí)未支付自動(dòng)取消是一個(gè)常見的需求,這個(gè)功能乍一看很簡(jiǎn)單,甚至很多初學(xué)者會(huì)覺得:"不就是加個(gè)定時(shí)器么?" 但真到了實(shí)際工作中,細(xì)節(jié)的復(fù)雜程度往往會(huì)超乎預(yù)期,本文給大家介紹了Java實(shí)現(xiàn)訂單超時(shí)自動(dòng)取消的7種方案2024-12-12Java以編程方式實(shí)現(xiàn)JAR文件的創(chuàng)建
在這篇文章中,我們將為大家詳細(xì)介紹一下利用Java語言以編程方式創(chuàng)建jar文件的過程。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-07-07