javamail模拟邮箱功能--邮件删除-中级实战篇【邮件标记方法】(javamail API电子邮件实例)
前言:
JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html
本章可能是讲解javamail的最后一篇了,上次更新完查看方法后,本打算周末更新的,没想今天周五挺闲,就地正法算了...就赶紧再下班前写完了。阅读本章节前建议阅读之前章节,因为这章是在之前的基础上增加的业务方法,不看之前的可能有点云里雾里。 点我前往
邮件标志:是指给邮件message对象设置一个Flag内部类里的属性字段,标志类型会在代码中给出。
本章节演示的是给邮件一个删除标志,来实现邮件的删除操作。
代码走起//////
MarkEmailFunction 标记邮件业务类
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; /**
* 标记邮件业务类(包涵删除)
* @author liuyt
* @date 2014-10-31 下午3:04:39
* bolgs http://www.cnblogs.com/liuyitian/
*/
public class MarkEmailFunction extends LookEmailService{
/**
* 因为我继承了查看业务类,所以这里我在获取邮件的时候可以直接调用父类的方法进行获取,减少代码量
* @throws UnsupportedEncodingException
* @throws MessagingException
*/
public MarkEmailFunction() throws UnsupportedEncodingException,
MessagingException {
} /**
* 标记邮件方法(其实在上一章有接触,就是Folder.READ_ONLY以只读方式打开邮件夹)
* 每个邮件消息 message都有对应的实时标志,有服务器定义的,也有用户自定义的
* 服务器预定义的都在内部类Flags.Flag里以常量方式存在
* @param flag 状态标识
* @throws MessagingException
* @throws UnsupportedEncodingException
*/
public void markEmail(Flag flag) throws UnsupportedEncodingException, MessagingException { /** 拿到一封邮件,这里获取的是收件箱内最新一封邮件,做删除操作,其他方法自行测试 */
Message message = this.getMessageByIndex(this.getAllMessage().length);
message.setFlag(Flags.Flag.DELETED, true); // true为设置,false为取消
/**
* 在源码中找到的标识,仅供参考
* ANSWERED 回复
* DELETED 删除
* DRAFT 草稿
* FLAGGED 已读(个人理解)
* RECENT ..
* SEEN ..
* USER ..(还没明白-.-)
*/
// 重要步骤,现在邮件还没真正删除,只是有一个删除的标记,你需要像刷新流一样刷新邮件夹
// 上节说到false不刷新,true刷新,此时邮件删除(重要邮件请慎重操作)
this.getFolder().close(true);
} /**
* 这里需要重写父类的初始化文件夹方法,因为上一章节为了安全性,我们是以只读方式打开邮件夹的
* 这里要把上一章节父类的属性改为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");
// 上面方法不再复述,不懂的看上一章节,这里只需更改下面一个打开方法为READ_WRITE
folder.open(Folder.READ_WRITE);
} /**** 简单main方法测试 ****/
public static void main(String[] args) {
MarkEmailFunction mark;
try {
mark = new MarkEmailFunction();
// 注意Flag为静态内部类,要用外部类来获取
mark.markEmail(Flags.Flag.DELETED);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
总结:
- 邮件的标记要建立的查看的基础上,所以直接继承了查看业务类
- 要对邮件进行删除操作时要以读写(READ_WRITE)方式打开Folder邮件夹
- 对邮件添加标记后,记得在关闭邮件夹的时候刷新邮件夹(具体为参数传:true)
- 只要之前的都练习过,在这里就不啰嗦了,........此处省略.......1w字.........
javamail API 系列篇:
- javamail模拟邮箱功能发送电子邮件-基础实战篇
- javamail模拟邮箱功能发送电子邮件-中级实战篇【新增附件发送方法】
- javamail模拟邮箱功能获取邮件内容-中级实战篇【内容|附件下载方法】
- javamail模拟邮箱功能--邮件回复-中级实战篇【邮件回复方法】
- javamail模拟邮箱功能--邮件删除-中级实战篇【邮件标记方法】
写作不易,难免有疏漏和错误,还请慷慨指正,觉得有帮助还请推荐哦
ps:欢迎转载,转载请注明出处:http://www.cnblogs.com/liuyitian/p/4065654.html
每天多学一点点 代码少敲一点点
javamail模拟邮箱功能--邮件删除-中级实战篇【邮件标记方法】(javamail API电子邮件实例)的更多相关文章
- javamail模拟邮箱功能--邮件回复-中级实战篇【邮件回复方法】(javamail API电子邮件实例)
引言: JavaMai下载地址l jar包:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...
- javamail模拟邮箱功能获取邮件内容-中级实战篇【内容|附件下载方法】(javamail API电子邮件实例)
引言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...
- javamail模拟邮箱功能发送电子邮件-中级实战篇【新增附件发送方法】(javamail API电子邮件实例)
引言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...
- javamail模拟邮箱功能发送电子邮件-基础实战篇(javamail API电子邮件实例)
引言: JavaMail 是一种可选的.能用于读取.编写和发送电子消息的包 JavaMail jar包下载地址:http://java.sun.com/products/javamail/downlo ...
- zabbix配置邮件报警(第四篇)
zabbix配置邮件报警(第四篇) 邮件报警可采用本地邮件服务,也可以自定义脚本,这里我采用本地邮件服务报警 添加收件人
- javamail实现邮箱验证功能
javamail是基于SMTP协议和POP3协议的邮件发送与接收系统,在用户注册与登陆的过程中,常需要用到邮箱验证功能,下面是基于javamail的一个简单实现 用户注册后通过servlet得到邮箱地 ...
- JavaMail实现邮箱之间发送邮件功能
package com.minstone.message.util; import java.util.Date; import java.util.Properties; import javax. ...
- 模拟邮箱输入邮箱地址、收藏标签。input框输入内容后回车,内容显示成小方块并带删除按钮。
模拟邮箱输入邮箱地址.收藏标签: 文本框输入文字后按回车键或者分号键,输入框中的文字变成小块并带删除按钮和操作. 页面代码: <!DOCTYPE html> <%@ page lan ...
- Spring Boot实战系列-----------邮件发送
快速导航 添加Maven依赖 配置文件增加邮箱相关配置 Service.Test项目代码构建 五种邮件发送类型讲解 文本邮件 html邮件 附件邮件 html内嵌图片邮件 模板邮件 问题汇总 添加ma ...
随机推荐
- 在DECIMAL(m,n)的设置中,整数的位数不能大于(m-n)
关于DB2的DECIMAL类型 创建表的时用的是DECIMAL(13,2),我认为它为13个整数位数+2为有效数字,因为在打印银行交易的FORM时遇到了难题.输出和建表的长度不一样,我们以为它会打印出 ...
- Eclipse Java EE 创建 Dynamic Web Project
1. 创建一个web工程,此处用eclipse创建(如果对创建web工程很熟悉,可以不看的,本文目的是做一个记录) 1) 打开新建工程对话框,选择Dynamic web Proje ...
- android自动化环境搭建
android自动化环境安装指南 1.appium相关安装(eclipse下)见http://www.cnblogs.com/wangcp-2014/p/5717589.html参考selenium的 ...
- vim不保存退出
对于刚开始使用vi/vim文本编辑器的新手来说,如何在不保存更改而退出vi/vim 文本编辑器呢? 当你使用linux vi/vim 文本编辑器对linux下某个配置文件做编辑操作,当你更改完之后,可 ...
- Spring笔记——依赖注入
依赖注入有三种方式: 1. 使用构造器注入 2. 使用属性setter方法注入 3. 使用Field注入(用于注解方式) 注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自 ...
- Linux命令(3):wc命令
Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件... 2.命令功能: 统计指定文件中的字节数. ...
- 蓝缘管理系统第三版推出。springMVC4.0+shiro1.2.3+spring4.x+Mybaits3.2.8
blog.csdn.net/mmm333zzz/article/details/42059349 http://blog.csdn.net/zoutongyuan/article/details/41 ...
- PHP 增删改查 import!!
主页面 <h1>主页面family</h1> <table width="100%" border="1px" cellpaddi ...
- CListCtrl使用方法汇总
回顾: 刚刚写完,因为是分期写的,所以最初想好好做一下的文章格式半途而废了~说的也许会有点啰嗦,但是所有的基础用到的技术细节应该都用到了. 如果还有什么疑问,请回复留言,我会尽力解答. 如果有错误,请 ...
- 台湾P2P平台
2014年6月28日下午1:30,“2014两岸三地P2P网贷行业高峰论坛”在上海会展中心友谊会堂如期举行,现场高朋满座,来自全国各地的众多知名P2P网站平台的负责人参与了讨论,并就当前P2P行业的一 ...