javaMail 应用体会 之 邮件删除

要执行邮件的删除操作,首先我们要先来了解一下邮件的Flags(标志).
  消息的删除涉及到与消息相关的 Flags(标志).不同 flag 表示不同的状态,有些标志由系统定义,而有些则由用户自己定义.下面列出在内部类 Flags.Flag 中预定义的标志:
  ·Flags.Flag.ANSWERED
  ·Flags.Flag.DELETED
  ·Flags.Flag.DRAFT
  ·Flags.Flag.FLAGGED
  ·Flags.Flag.RECENT
  ·Flags.Flag.SEEN
  ·Flags.Flag.USER

  上述这些标志只是标准定义,并不意味着所有邮件服务器或供应商都支持所有这些标志.例如,除了删除消息标志外,POP 协议不再支持其它任何标志.检查是否存在新邮件,这不是个 POP 任务,而是内建于邮件客户机的任务.为找出哪些标志能被支持,可以用 getPermanentFlags() 向 folder 提出请求.

  首先,请以 READ_WRITE 模式打开 folder:


  folder.open(Folder.READ_WRITE);

  要删除邮件,设置邮件的 DELETED flag:


  message.setFlag(Flags.Flag.DELETED, true);
  message.saveChanges();

  然后,当所有消息的处理完成后,关闭 folder,并传递一个 true 值,从而擦除(expunge)有 delete 标志的消息.


  folder.close(true);

  一个 Folder 的 expunge() 方法可以用来删除消息.但 Sun 的 POP3 供应商不支持.其它供应商有的或许能够实现这一功能,而有的则不能.IMAP 供应商极有可能实现此功能.因为 POP 只支持单个对邮箱的访问,对 Sun 的供应商来说,您必需关闭 folder 以删除消息.
  要取消标志,只要传递 false 给 setFlag() 方法就行了.想知道是否设置过标志,可以用 isSet() 检查.

你可能感兴趣的:(javamail)