JavaMail入門教程之接收郵件(4)
上一篇JavaMail入門第三篇 發(fā)送郵件中,我們學會了如何用JavaMail API提供的Transport類發(fā)送郵件,同樣,JavaMail API中也提供了一些專門的類來對郵件的接收進行相關的操作,在介紹這些類之前,我們先來了解下郵件接收API的體系結(jié)構(gòu),JavaMail API中定義了一個java.mail.Store類,它用于執(zhí)行郵件的接收任務,我們在程序中調(diào)用這個類中的方法可以獲取郵箱中的各個郵件夾的信息。JavaMail使用Folder對象表示郵件夾,通過Folder對象的方法可以獲取郵件夾中的所有郵件信息,而我們知道郵件的信息可以使用Message對象來表示,Message類中就包含了操作郵件的各種方法了,例如獲取郵件的發(fā)送者,主題,正文內(nèi)容,發(fā)送時間等,它們工作關系如下:

1、從Session對象中獲得實現(xiàn)了某種郵件發(fā)送協(xié)議的Store對象;
2、登錄郵箱,連接上POP3或者IMAP4服務器;
3、調(diào)用Store的getFolder方法,獲取郵箱中的某個郵件夾的Folder對象;
4、調(diào)用Folder對象中的getMessage或getMessages方法,獲取郵件夾中的某一封郵件或者是所有郵件,每一封的郵件以一個Message對象返回。
接下來我們用以上類來接收郵件
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服務器的屬性信息
String pop3Server = "pop.qq.com";
String protocol = "pop3";
String username = "123456@qq.com";
String password = "****************"; // QQ郵箱的SMTP的授權(quán)碼,什么是授權(quán)碼,它又是如何設置?
Properties props = new Properties();
props.setProperty("mail.transport.protocol", protocol); // 使用的協(xié)議(JavaMail規(guī)范要求)
props.setProperty("mail.smtp.host", pop3Server); // 發(fā)件人的郵箱的 SMTP服務器地址
// 獲取連接
Session session = Session.getDefaultInstance(props);
session.setDebug(false);
// 獲取Store對象
Store store = session.getStore(protocol);
store.connect(pop3Server, username, password); // POP3服務器的登陸認證
// 通過POP3協(xié)議獲得Store對象調(diào)用這個方法時,郵件夾名稱只能指定為"INBOX"
Folder folder = store.getFolder("INBOX");// 獲得用戶的郵件帳戶
folder.open(Folder.READ_WRITE); // 設置對郵件帳戶的訪問權(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)容到控制臺
}
folder.close(false);// 關閉郵件夾對象
store.close(); // 關閉連接對象
}
}
控制臺輸出結(jié)果:

可以看到控制臺輸出的是郵件的原始內(nèi)容,還未被解析,所以需要經(jīng)過解析才能閱讀,下一篇JavaMail入門第五篇 解析郵件將講解如何解析郵件。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- java中javamail發(fā)送帶附件的郵件實現(xiàn)方法
- Java基于JavaMail實現(xiàn)向QQ郵箱發(fā)送郵件
- java中javamail收發(fā)郵件實現(xiàn)方法
- Java程序中使用JavaMail發(fā)送帶圖片和附件的郵件
- JavaMail實現(xiàn)發(fā)送超文本(html)格式郵件的方法
- struts2集成javamail發(fā)郵件示例詳解
- JavaWeb中使用JavaMail實現(xiàn)發(fā)送郵件功能實例詳解
- javamail 發(fā)送郵件的實例代碼分享
- JavaMail實現(xiàn)郵件發(fā)送的方法
- Java使用JavaMail API發(fā)送和接收郵件的代碼示例
相關文章
解讀@ResponseBody與@RequestBody注解的用法
這篇文章主要介紹了Spring MVC中的@ResponseBody和@RequestBody注解的用法,@ResponseBody注解用于將Controller方法的返回對象轉(zhuǎn)換為指定格式(如JSON)并通過Response響應給客戶端,@RequestBody注解用于讀取HTTP請求的內(nèi)容2024-11-11
Java Web使用Html5 FormData實現(xiàn)多文件上傳功能
這篇文章主要介紹了Java Web使用Html5 FormData實現(xiàn)多文件上傳功能,需要的朋友可以參考下2017-07-07
Java以編程方式實現(xiàn)JAR文件的創(chuàng)建
在這篇文章中,我們將為大家詳細介紹一下利用Java語言以編程方式創(chuàng)建jar文件的過程。文中的示例代碼講解詳細,感興趣的可以了解一下2022-07-07

