前言:
JavaMail jar包下載地址:http://java.sun.com/PRoducts/javamail/downloads/index.html
本章可能是講解javamail的最后一篇了,上次更新完查看方法后,本打算周末更新的,沒想今天周五挺閑,就地正法算了...就趕緊再下班前寫完了。閱讀本章節(jié)前建議閱讀之前章節(jié),因為這章是在之前的基礎(chǔ)上增加的業(yè)務(wù)方法,不看之前的可能有點云里霧里。 點我前往
郵件標(biāo)志:是指給郵件message對象設(shè)置一個Flag內(nèi)部類里的屬性字段,標(biāo)志類型會在代碼中給出。
本章節(jié)演示的是給郵件一個刪除標(biāo)志,來實現(xiàn)郵件的刪除操作。
代碼走起//////
MarkEmailFunction 標(biāo)記郵件業(yè)務(wù)類
package com.java.mail;import java.io.UnsupportedEncodingException;import javax.mail.Flags;import javax.mail.Flags.Flag;import javax.mail.Folder;import javax.mail.Message;import javax.mail.MessagingException;/** * 標(biāo)記郵件業(yè)務(wù)類(包涵刪除) * @author liuyt * @date 2014-10-31 下午3:04:39 * bolgs http://m.survivalescaperooms.com/liuyitian/ */public class MarkEmailFunction extends LookEmailService{ /** * 因為我繼承了查看業(yè)務(wù)類,所以這里我在獲取郵件的時候可以直接調(diào)用父類的方法進(jìn)行獲取,減少代碼量 * @throws UnsupportedEncodingException * @throws MessagingException */ public MarkEmailFunction() throws UnsupportedEncodingException, MessagingException { } /** * 標(biāo)記郵件方法(其實在上一章有接觸,就是Folder.READ_ONLY以只讀方式打開郵件夾) * 每個郵件消息 message都有對應(yīng)的實時標(biāo)志,有服務(wù)器定義的,也有用戶自定義的 * 服務(wù)器預(yù)定義的都在內(nèi)部類Flags.Flag里以常量方式存在 * @param flag 狀態(tài)標(biāo)識 * @throws MessagingException * @throws UnsupportedEncodingException */ public void markEmail(Flag flag) throws UnsupportedEncodingException, MessagingException { /** 拿到一封郵件,這里獲取的是收件箱內(nèi)最新一封郵件,做刪除操作,其他方法自行測試 */ Message message = this.getMessageByIndex(this.getAllMessage().length); message.setFlag(Flags.Flag.DELETED, true); // true為設(shè)置,false為取消 /** * 在源碼中找到的標(biāo)識,僅供參考 * ANSWERED 回復(fù) * DELETED 刪除 * DRAFT 草稿 * FLAGGED 已讀(個人理解) * RECENT .. * SEEN .. * USER ..(還沒明白-.-) */ // 重要步驟,現(xiàn)在郵件還沒真正刪除,只是有一個刪除的標(biāo)記,你需要像刷新流一樣刷新郵件夾 // 上節(jié)說到false不刷新,true刷新,此時郵件刪除(重要郵件請慎重操作) this.getFolder().close(true); } /** * 這里需要重寫父類的初始化文件夾方法,因為上一章節(jié)為了安全性,我們是以只讀方式打開郵件夾的 * 這里要把上一章節(jié)父類的屬性改為protected,子類可訪問的(這里不再貼出代碼) */ @Override public void initStoreAndFolder() throws UnsupportedEncodingException, MessagingException { this.emailService = new EmailServiceEnity("", "",EmailServiceEnity.MAIL_PROTOCOL_POP3); this.store = emailService.getsession().getStore(emailService.getMailProtocol()); store.connect(emailService.getHostPort(), EmailServiceEnity.username, EmailServiceEnity.passWord); folder = store.getFolder("INBOX"); // 上面方法不再復(fù)述,不懂的看上一章節(jié),這里只需更改下面一個打開方法為READ_WRITE folder.open(Folder.READ_WRITE); } /**** 簡單main方法測試 ****/ public static void main(String[] args) { MarkEmailFunction mark; try { mark = new MarkEmailFunction(); // 注意Flag為靜態(tài)內(nèi)部類,要用外部類來獲取 mark.markEmail(Flags.Flag.DELETED); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } }}總結(jié):
javamail API 系列篇:
寫作不易,難免有疏漏和錯誤,還請慷慨指正,覺得有幫助還請推薦哦
ps:歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處:http://m.survivalescaperooms.com/liuyitian/p/4065654.html
每天多學(xué)一點點 代碼少敲一點點
|
新聞熱點
疑難解答