gpt4 book ai didi

java - IMAP 和 Flags.SEEN

转载 作者:行者123 更新时间:2023-11-30 04:31:33 25 4
gpt4 key购买 nike

确保 IMAP 客户端与其服务器同步的一种方法是利用 SEEN 标志(例如 Library for IMAP IDLE )。

我自己还没有使用过这个,但我想知道设置 SEEN 标志是否基本上将消息设置为在服务器上“读取”。

如果是这样,当涉及多个读者或用户直接登录服务器(例如登录他们的 Gmail 帐户)并在那里读取消息(以便将其“标记为已读”)时,这显然是一个问题,并且 - 因此 - 标记为“SEEN”)。

或者,我可能完全误解了这一点,SEEN 是特定客户端和服务器之间唯一的东西。但是,不清楚在这种情况下如何维护状态。

最佳答案

“利用 SEEN 标志”听起来像是与服务器同步的糟糕方法。正如您所猜测的,设置 SEEN 标志基本上将消息设置为在服务器上“读取”。所有其他 IMAP 客户端都会看到该邮件已被读取。该标志在服务器和每个客户端之间不是“私有(private)的”。除非用户已经看到,否则您的客户端不应将消息标记为“SEEN”。

要进行同步,您需要跟踪客户端已看到的消息的 UID,并在轮询文件夹时将该列表与服务器上可用的列表进行比较。然后,您可以在本地丢弃不再位于服务器上的消息(它们是已从其他客户端删除的消息),并下载本地列表中没有的消息(它们是新消息)。

如果您想要保持鲁棒性并处理服务器忘记了所有消息的 UID 并使用新 UID 重建文件夹的情况(如果索引损坏并在服务器上重建,则可能会发生这种情况),情况会变得更加复杂软件已更改,服务器已成为不同的托管提供商等...)但这就是基本思想。

关于java - IMAP 和 Flags.SEEN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14541862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com