繁体   English   中英

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

[英]Delete Email on Server using javax.mail

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

问题 :当客户端尝试接收所有电子邮件时,我是否有可能从服务器中删除文件,以便它们不再可用? 如果是这样,请告诉我如何。

您应该可以通过标准API执行此操作。

首先,您需要获取对要删除的Message (或消息)的引用 - 如果您已成功阅读它们,那么您已经能够执行此操作。 现在,没有明确的delete()操作,但您可以将消息标记为已删除,如下所示:

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

这会将邮件标记为已删除(这通常是删除操作在桌面IMAP客户端中执行的操作)。 为了强制删除已删除的邮件,当您完成它们所在的Folder ,请调用

folder.close(true);

其中true标志指示服务器清除所有已删除的消息。

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

编辑:

不要忘记以READ_WRITE模式打开文件夹,否则实际上不会从服务器中删除消息。

folder.open(Folder.READ_WRITE);

请参阅: http//java.sun.com/developer/onlineTraining/JavaMail/contents.html#JavaMailDeleting

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM