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

JavaMail入門教程之接收郵件(4)

 更新時(shí)間:2016年12月22日 15:47:09   作者:汪先森  
這篇文章主要為大家詳細(xì)介紹了JavaMail入門教程之接收郵件的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

上一篇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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解讀@ResponseBody與@RequestBody注解的用法

    解讀@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)

    簡(jiǎn)單實(shí)現(xiàn)Java版學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了簡(jiǎn)單實(shí)現(xiàn)Java版學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Java Web使用Html5 FormData實(shí)現(xiàn)多文件上傳功能

    Java 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)于Java中靜態(tài)代碼塊執(zhí)行的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • Java中文件寫入內(nèi)容的幾種常見方法

    Java中文件寫入內(nèi)容的幾種常見方法

    本文主要介紹了Java中文件寫入內(nèi)容的幾種常見方法,主要包括使用NIO的Files工具類、通過commons-io的FileUtils工具類、RandomAccessFile、PrintWriter和BufferedWriter這幾種,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • SpringBoot定時(shí)任務(wù)多線程實(shí)現(xiàn)示例

    SpringBoot定時(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-12
  • Seata?AT模式啟動(dòng)過程圖文示例詳解

    Seata?AT模式啟動(dòng)過程圖文示例詳解

    這篇文章主要為大家介紹了Seata?AT模式啟動(dòng)過程圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Java設(shè)計(jì)模式之迪米特原則精解

    Java設(shè)計(jì)模式之迪米特原則精解

    設(shè)計(jì)模式(Design pattern)代表了最佳的實(shí)踐,通常被有經(jīng)驗(yàn)的面向?qū)ο蟮能浖_發(fā)人員所采用。設(shè)計(jì)模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。本篇介紹設(shè)計(jì)模式七大原則之一的迪米特原則
    2022-02-02
  • Java實(shí)現(xiàn)訂單超時(shí)自動(dòng)取消的7種方案

    Java實(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-12
  • Java以編程方式實(shí)現(xiàn)JAR文件的創(chuàng)建

    Java以編程方式實(shí)現(xiàn)JAR文件的創(chuàng)建

    在這篇文章中,我們將為大家詳細(xì)介紹一下利用Java語言以編程方式創(chuàng)建jar文件的過程。文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-07-07

最新評(píng)論