JavaMail入門第四篇 內送郵件,javamail第四篇

來源:互聯網
上載者:User

JavaMail入門第四篇 內送郵件,javamail第四篇

上一篇JavaMail入門第三篇 發送郵件中,我們學會了如何用JavaMail API提供的Transport類發送郵件,同樣,JavaMail API中也提供了一些專門的類來對郵件的接收進行相關的操作,再介紹這些類之前,我們先來瞭解下郵件接收API的體繫結構,JavaMail API中定義了一個java.mail.Store類,它用於執行郵件的接收任務,我們在程式中調用這個類中的方法可以擷取郵箱中的各個郵件夾的資訊。JavaMail使用Folder對象表示郵件夾,通過Folder對象的方法可以擷取郵件夾中的所有郵件資訊,而我們知道郵件的資訊可以使用Message對象來表示,Message類中就包含了操作郵件的各種方法了,例如擷取郵件的寄件者,主題,本文內容,發送時間等,它們工作關係如下:

1、從Session對象中獲得實現了某種郵件發送協議的Store對象;

2、登入郵箱,串連上POP3或者IMAP4伺服器;

3、調用Store的getFolder方法,擷取郵箱中的某個郵件夾的Folder對象;

4、調用Folder對象中的getMessage或getMessages方法,擷取郵件夾中的某一封郵件或者是所有郵件,每一封的郵件以一個Message對象返回。

接下來我們用以上類來內送郵件

 1 import java.util.Properties; 2  3 import javax.mail.Address; 4 import javax.mail.Folder; 5 import javax.mail.Message; 6 import javax.mail.Session; 7 import javax.mail.Store; 8  9 class MailReceives {10     public static void main(String[] args) throws Exception {11         // 定義串連POP3伺服器的屬性資訊12         String pop3Server = "pop.qq.com";13         String protocol = "pop3";14         String username = "552482793@qq.com";15         String password = "gvbrkikfckxgbeac";16 17         Properties props = new Properties();18         props.setProperty("mail.transport.protocol", protocol); // 使用的協議(JavaMail規範要求)19         props.setProperty("mail.smtp.host", pop3Server); // 寄件者的郵箱的 SMTP伺服器位址20 21         // 擷取串連22         Session session = Session.getDefaultInstance(props);23         session.setDebug(false);24 25         // 擷取Store對象26         Store store = session.getStore(protocol);27         store.connect(pop3Server, username, password); // POP3伺服器的登陸認證28         29         // 通過POP3協議獲得Store對象調用這個方法時,郵件夾名稱只能指定為"INBOX"30         Folder folder = store.getFolder("INBOX");// 獲得使用者的郵件帳戶31         folder.open(Folder.READ_WRITE); // 設定對郵件帳戶的存取權限32 33         Message[] messages = folder.getMessages();// 得到郵箱帳戶中的所有郵件34 35         for (Message message : messages) {36             String subject = message.getSubject();// 獲得郵件主題37             Address from = (Address) message.getFrom()[0];// 獲得寄件者地址38             System.out.println("郵件的主題為: " + subject + "\t寄件者地址為: " + from);39             System.out.println("郵件內容為:" + message.getContent());40         }41 42         folder.close(false);// 關閉郵件夾對象43         store.close(); // 關閉連線物件44     }45 }

Message中的getContent方法用於返回郵件體的內容,該方法把郵件體內容作為一個Java對象返回,對象的類型由郵件體內容確定,當郵件內容的MIME類型為"text/plain"時,返回的是一個String對象,郵件內容是一個"multipart"類型時,返回的是一個Multipart的一個實作類別,郵件內容的MIME類型不確定時,返回的是與內容相關聯的InputStream流。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.