【Java mail 入门教程】第四讲 删除邮件

其实删除邮件很简单,在接收邮件的基础上对需要删除的邮件做一个标记(Flags类),然后程序就会对有做了标记的邮件进行删除。

在Flags类的内部类Flag中预定义了一些标志: 
Flags.Flag.ANSWERED 
Flags.Flag.DELETED (删除的标记,这一讲我们就要用到这个标记)
Flags.Flag.DRAFT 
Flags.Flag.FLAGGED 
Flags.Flag.RECENT 
Flags.Flag.SEEN 
Flags.Flag.USER

 

删除邮件:message[i].setFlag(Flags.Flag.DELETEDtrue);

 

讲到这里我想大家都已经想到删除一封邮件的程序到底怎样写了。

不过有一点要注意的,上一讲我们打开Folder的时候是用READ_ONLY,当然读文件用READ_ONLY是做够的,但是我要这一讲要做的操作时删除文件,READ_ONLY是没有删除邮件的权限,所以我们要改为READ_WRITE。

如果要检查某个邮件是否标记了Flags.Flag.DELETED,可以使用message[i].isSet(Flags.Flag DELETED)

 

注意:这个删除操作是将邮件彻底删除的,大家要谨慎使用,务必读懂代码再进行操作。不小心删除了重要的邮件,小弟不负责人哦,(*^__^*) 嘻嘻……

 这个只是一个很简单的删除邮件,在现实中我们会考虑到删除邮件后会将邮件移动另外一个目录下(如已删除、垃圾箱),这些功能我会在后面会讲!

给个例子大家参考:


import java.io.BufferedReader;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.util.Properties;
 
 import javax.mail.Flags;
 import javax.mail.Folder;
 import javax.mail.Message;
 import javax.mail.Session;
 import javax.mail.Store;
 
 public class DelMail {
 
     public static void main(String[] args) throws Exception {
         Properties props = new Properties();
         Session session = Session.getDefaultInstance(props);
         //取得pop3协议的邮件服务器
         Store store = session.getStore("pop3");
         //连接pop.qq.com邮件服务器
         store.connect("pop.qq.com", "343820302@qq.com", "******");
         //返回文件夹对象
         Folder folder = store.getFolder("INBOX");
         //设置读写
         folder.open(Folder.READ_WRITE);
         //获取信息
         Message message[] = folder.getMessages(); 
         
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         
         for(int i=0; i<message.length; i++) {
             System.out.println(i + ": " + message[i].getFrom()[0] + "\t" + message[i].getSubject());
             System.out.println("Do you want to delete message? [YES to delete]");
             String line = br.readLine();
             if(line.equals("YES")) {
                 //设置删除标记
                 message[i].setFlag(Flags.Flag.DELETED, true);
             }
         }
         
         folder.close(true);
         store.close(); 
     }
 }

PS:程序最后folder.close( true )执行了才会生效!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【完整课程列表】 https://download.csdn.net/download/qq_27595745/55555830 完整版精品java课件 Java基础入门教程 Java程序设计 第1章 Java语言概述(共38页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第2章 java语言基础(共31页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第3章 控制结构(共23页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第4章 类和对象(共57页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第5章 继承和接口(共47页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第6章 数组和集合(共44页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第7章 字符串处理(共38页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第8章 异常处理(共27页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第9章 输入输出流(共49页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第10章 JDBC数据库编程(共21页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第11章 图形用户界面1(共27页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第11章 图形用户界面2(共31页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第12章 applet(共16页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第13章 多线程(共24页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第14章 socket网络编程(共24页).ppt

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值