在特定日期时间之后获取更改/更新的邮件列表

时间:2013-02-05 19:39:47

标签: javamail

我正在尝试实现一个简单的同步引擎,它将同步imap服务器和我的本地客户端之间的更改,这是由javamail API开发的。是否有任何方法可以在服务器的一个查询中针对上次更新的日期时间值获取新到达,标记更改,删除等更改?

例如:假设我的上次同步时间是01/03/2013 @ 23.00。

如果我在上述时间之后查询更改,我期待以下内容:

  • 消息ID:xxxxxxxxx: - 已加星标
  • 消息ID:yyyyyyyyy: - 已删除
  • 消息ID:ppppppppp: - 未读
  • 消息ID:ppppppppp: - 已加星标
  • .......
  • .......

否则如果您有更好的方法在服务器 - 客户端文件夹之间进行同步,请同时提及它们。 等待快速反应。

提前致谢。 :)

1 个答案:

答案 0 :(得分:0)

简单的答案是否定的,你不能用一个查询来做到这一点。

稍长的答案是您不希望基于日期/时间执行此操作,而是基于消息UID。这将允许您检测添加/删除的消息。要检测消息标志的更改,您需要查询所有消息的所有标志,然后将它们与保存的标志副本进行比较。

这是脱机操作和将脱机操作与服务器上的更改同步的一般问题。从RFC 4549开始,然后向后工作以弄清楚如何使用JavaMail执行操作。