【问题标题】:Synchronizing Gmail mail同步 Gmail 邮件
【发布时间】:2017-06-06 16:20:40
【问题描述】:

我已经使用 JavaMail API Imap 协议获取了所有 Gmail 邮件并以表格格式显示它们,但现在的问题是如何显示删除它们? 单击该邮件必须删除,所有使用协议的连接都将丢失,我想删除该邮件。

【问题讨论】:

    标签: gmail jakarta-mail imap


    【解决方案1】:

    一旦您失去与服务器的连接,您实际上是在“断开连接”模式下运行。 JavaMail FAQ 提供了关于how to handle disconnected mode with IMAP 的更多信息。做好这件事需要做很多工作。

    一种更简单的方法是尽最大努力确保连接不会不必要地丢失,例如,至少每 30 分钟调用一次 Folder.getMessageCount。如果您仍然失去连接(这有时会发生), 你扔掉所有缓存的数据,重新连接,然后刷新用户的视图。

    如果您只关心能够删除用户可以看到的消息,您也许可以采取一种中间方法。您可以保存所有消息的 UID(以及文件夹的 UIDVALIDITY),当连接丢失时,您将重新连接并get the Message objects for all messages based on UID。然后,如果该消息仍然存在于服务器上,您就可以删除该消息。

    【讨论】:

    • 谢谢先生!求助。我对要删除的消息的想法是什么,我将发送该邮件的日期,并在 IMAP 代码中使该邮件标志删除启用
    • 我不明白。
    • 假设我失去了与 gmail 服务器的连接,然后单击我将传输我收到的邮件的日期和确切时间,我将再次建立连接,但这次只有具有相同时间和日期的邮件才会被提取并为该邮件启用删除标志,因此该邮件将被删除。
    • 我想在我的项目中实现邮件服务器 API。每个用户都应该能够使他们的电子邮件 ID 像 xyz@xyz.com 一样,并且可以将邮件发送到我使用的邮件服务器 API 等任何服务器,例如 google、yahoo 等。我探索了Apache James,会不会适合这个?
    • 日期和时间不是唯一的。这就是为什么您需要使用消息 UID。
    猜你喜欢
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    相关资源
    最近更新 更多