【发布时间】:2017-06-06 16:20:40
【问题描述】:
我已经使用 JavaMail API Imap 协议获取了所有 Gmail 邮件并以表格格式显示它们,但现在的问题是如何显示删除它们? 单击该邮件必须删除,所有使用协议的连接都将丢失,我想删除该邮件。
【问题讨论】:
标签: gmail jakarta-mail imap
我已经使用 JavaMail API Imap 协议获取了所有 Gmail 邮件并以表格格式显示它们,但现在的问题是如何显示删除它们? 单击该邮件必须删除,所有使用协议的连接都将丢失,我想删除该邮件。
【问题讨论】:
标签: gmail jakarta-mail imap
一旦您失去与服务器的连接,您实际上是在“断开连接”模式下运行。 JavaMail FAQ 提供了关于how to handle disconnected mode with IMAP 的更多信息。做好这件事需要做很多工作。
一种更简单的方法是尽最大努力确保连接不会不必要地丢失,例如,至少每 30 分钟调用一次 Folder.getMessageCount。如果您仍然失去连接(这会有时会发生), 你扔掉所有缓存的数据,重新连接,然后刷新用户的视图。
如果您只关心能够删除用户可以看到的消息,您也许可以采取一种中间方法。您可以保存所有消息的 UID(以及文件夹的 UIDVALIDITY),当连接丢失时,您将重新连接并get the Message objects for all messages based on UID。然后,如果该消息仍然存在于服务器上,您就可以删除该消息。
【讨论】: