IMAP 客户端同步本地消息服务器?

Posted

技术标签:

【中文标题】IMAP 客户端同步本地消息服务器?【英文标题】:IMAP Client Sync local messages Server? 【发布时间】:2011-12-07 05:15:25 【问题描述】:

创建 IMAP 客户端并使其本地消息存储与服务器保持同步的最佳通用技术是什么?

我想我正在寻找正确的方法来找出自上次检查以来服务器上的 IMAP 文件夹中发生了什么变化,然后下载这些更改,将它们保存到我的本地数据库中......这将包括不再在文件夹中的邮件(已删除或移动)、新邮件和更改的邮件...

我想新消息很容易,我可以获取文件夹的最高 UID,然后查找自该 UID 以来的消息。我不太确定是否检测到已删除、移动或更改的邮件(可能邮件上的某些标志已更改)。

谢谢!

【问题讨论】:

【参考方案1】:

对于同步,您可能需要每个文件夹的所有消息 UID 和标志。 您可以将本地缓存的 UID 与返回的服务器进行比较,这样您就可以检测新消息并删除(

也许您应该使用某种 hastable 进行搜索/比较,这将加快所有速度。

【讨论】:

我想我会做的和这个差不多。基本上为每个文件夹的最后 x 天内的消息保留一组所有 UID,因此我可以将其与从服务器上搜索得到的信息进行比较,以检测已删除的消息。在此之前,我将通过搜索具有 UID > 文件夹的最高 UID 的 msgs 来查找新消息....谢谢

以上是关于IMAP 客户端同步本地消息服务器?的主要内容,如果未能解决你的问题,请参考以下文章

同步(复制)IMAP 消息

使用 c# .net 库检查来自 gmail 服务器的 IMAP 消息 [关闭]

使用 IMAP 删除消息不会从 MailSystem.NET 中删除消息

如何使用 IMAP 仅获取消息的序言和结尾

将消息从一个 IMAP 服务器移动到另一个的脚本

同步消息发送和接收 AGSCMPP