0

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

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

如果我在上述时间后查询更改,我期待如下所示:

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

否则,如果您有更好的方法在服务器 - 客户端文件夹之间同步,请也提及这些。等待非常快速的响应。

提前致谢。:)

4

1 回答 1

0

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

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

这是离线操作的一般问题,以及将离线操作与服务器上所做的更改同步。从RFC 4549开始并向后工作以找出如何使用 JavaMail 进行操作。

于 2013-02-06T01:15:11.173 回答