代码之家  ›  专栏  ›  技术社区  ›  Markus Lausberg

使用javax.mail删除服务器上的电子邮件

  •  34
  • Markus Lausberg  · 技术社区  · 15 年前

    我正在使用IMAP协议接收来自服务器的电子邮件,就像上面描述的那样 here . 这工作得很好,我可以将电子邮件和附件存储在磁盘上。

    问题 : 当客户机尝试接收所有电子邮件时,我是否有可能从服务器中删除文件,使其不再可用?如果是,请告诉我怎么做。

    1 回复  |  直到 9 年前
        1
  •  63
  •   Andrzej Doyle    11 年前

    您应该能够通过标准的API实现这一点。

    首先,你需要参考 Message (或消息)你想删除-如果你成功地阅读了它们,那么你已经能够做到这一点了。现在,没有显式的delete()操作,但是可以将消息标记为已删除,如下所示:

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

    这会将消息标记为已删除(这通常是桌面IMAP客户机中的删除操作)。为了强制删除已删除的邮件,当您完成 Folder (s)他们居住的地方,呼叫

    folder.close(true);
    

    其中,true标志指示服务器删除所有已删除的邮件。

    瞧!当客户机使用任何IMAP客户机连接到服务器时,不应再看到这些消息。

    编辑:

    不要忘记在读写模式下打开文件夹,否则邮件将不会从服务器上删除。

    folder.open(Folder.READ_WRITE);
    

    见: http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#JavaMailDeleting