当前位置: 首页 > 知识库问答 >
问题:

关于已删除消息/设置标志更新IMAP客户端的最佳实践

松英喆
2023-03-14

我了解如何通过UID和UidValidity的概念从IMAP服务器高效地获取电子邮件,这是指在IMAP客户端中保存最后获取的UID,然后只获取高于最后获取的UID的UID,只要邮箱的UidValidity参数保持不变。(如果UIDVality更改,请重新获取整个邮箱。)

无论如何,IMAP客户端意识到邮件已在服务器上的邮箱中被删除或标记(例如来自另一个客户端)的最佳实践是什么?

我发现了这个问题:IMAP客户端同步本地消息服务器?但我仍然不知道这意味着什么?我应该在IMAP客户端每次连接到IMAP服务器时再次获取所有UID吗?IMAP协议是否支持所选答案建议的哈希表?

共有1个答案

南门建章
2023-03-14

不幸的是,检测已删除的消息是原始IMAP协议真正不足的地方之一。

检测标记为“已删除”的邮件非常容易。您可以执行已删除的UID搜索,它将为您提供所有已删除邮件的UID。假设您没有保留太多已删除的邮件,邮箱也不太大,这是一个相当有效的查询。

检测已消失的消息有点困难。如果没有QRESYNC扩展(很少实现),最简单的方法就是向服务器请求仍然存在的所有消息的UID,然后将此列表与您知道的消息列表进行比较。答案只是建议您在本地使用一些智能数据结构来实现这一点。例如,在Python中,可以使用集。您拥有的消息集减去服务器上的消息集后,会留下一组已从服务器上删除的消息。服务器拥有的消息集减去您拥有的消息集,将为您留下一组新消息。

如果服务器上只有少量消息(

 类似资料:
  • 问题内容: 我正在使用JavaMail-1.5将Gmail帐户的IMAP消息附加到Yahoo帐户。我的要求是从邮件中删除用户标志,因为将邮件附加到其他文件夹时会产生错误。我要从消息中删除所有用户标志吗? 下面是获取标志的代码。 请建议如何从我的邮件中删除。 谢谢 问题答案: 我的问题已通过此代码解决- 此代码删除了导致无法将Gmail附加邮件添加到Yahoo的标志。

  • 我很难理解使用Node.js将ffmpeg的实时输出流到HTML5客户机的最佳方法,因为有许多变量在起作用,而且我在这方面没有太多经验,已经花了很多时间尝试不同的组合。 我的用例是: 1)IP视频摄像机RTSP H.264流由FFMPEG拾取,并使用node中的以下FFMPEG设置重新组合到mp4容器中,输出到stdout。这只在初始客户端连接上运行,这样部分内容请求就不会再次尝试生成FFMPEG

  • 嗨,我已经在不和谐的py日志删除消息,但现在它是这样的,当消息被删除的机器人什么都没有显示,我可以以某种方式使没有消息发送时,机器人删除消息

  • 我正在使用Kafka(与雅虎Kafka经理) 我想为重置消息设置一个规则,或者他们如何称呼它:“分区偏移量的总和” 在server.properties上是否有滚动kafka偏移量的参数? (即:我想重置或删除所有影响邮件保留的参数) 谢谢。

  • 问题内容: 最近的JVM有很多用于垃圾收集的XX参数(例如,请参见此处),但是哪些选项可以使客户端Swing应用程序真正更好地执行? 我应该注意到,让客户端Java应用程序真正困扰我的一件事是世界级垃圾回收的大量延迟。在Intelli-J IDEA中,我看到它进行了三分钟或更长时间。 编辑:感谢您的所有答复。只是为了报告一下,我使用了此处建议的设置,将IDEA的CMS垃圾收集器(这是大多数阅读此问

  • 将消息从死信队列移回Amazon SQS中的原始队列的最佳实践是什么? 是吗 从DLQ获取消息 将消息写入队列 从DLQ删除消息 还是有更简单的方法? 此外,AWS最终会在控制台中提供一个工具来将消息移出DLQ吗?