为什么 IMAP 指定 UID 以及 UIDValidity

为什么 IMAP 指定 UID 以及 UIDValidity

根据文件夹而不是根据服务器范围来唯一标识邮件的设计原因是什么?

IMAP 规定邮件由文件夹名称、UIDValidity(32 位)和 UID(32 位)唯一标识。为什么不直接用单个 64 位 UID 来唯一标识整个邮件服务器?

答案1

在很大程度上忽略了为什么这样设计的问题,这里是对 UID 和 UIDVALIDITY 如何在 IMAP 中协同工作的解释:

UID 是分配给每条消息的唯一标识符,范围限定于特定的“邮箱”。

UID 处理上下文中的“邮箱”通过以下组合有效识别:

  1. 邮箱名称(例如:INBOX)
  2. UIDVALIDITY 值(建议的实现:邮箱的创建日期)
    这本质上是一种缓存管理机制,这样,具有之前存在的名称的新邮箱不会使也通过该名称看到旧邮箱的客户端感到困惑(这样,IMAP 服务器实现就不会被迫保留已删除邮箱的 UID 状态)

相关内容