MessageSummaryItems.Id vs MessageSummaryItems.Envelope.Messa

  • 本文关键字:MessageSummaryItems Messa Envelope vs Id mailkit
  • 更新时间 :
  • 英文 :


我正在使用MailKit从Gmail帐户检索电子邮件。但是,我一直对电子邮件的ID感到困惑。

我已经查看了文档,但找不到完整的解释。

例如,我注意到UniqueId,实际上并不是唯一的;我的意思是,如果我将电子邮件移动到特定文件夹并获取该电子邮件,它有一个 ID(例如 1)。然后,如果我从文件夹中删除该电子邮件并将其再次添加到文件夹中,它将获得其他 UniqueId(例如,2)!

当我尝试获取MessageSummaryItems.Id时,我的电子邮件的值为空。

MessageSummaryItems.GMailMessageId的值是一个很大的数字,我不知道它是否真的唯一分配给该电子邮件。

MessageSummaryItems.Envelope.MessageId的值似乎是该电子邮件的全局唯一 ID。

我想了解更多有关这些 ID 的解释?

GMail 不支持OBJECTID扩展,因此MessageSummaryItems.Id永远不会得到任何东西(例如,返回的IMessageSummary.Id将始终null)。

MessageSummaryItems.Envelope.MessageIdMessage-Id标头值。

MessageSummaryItems.GMailMessageId是特定于 GMail 的标识符,与UniqueId类似,但对于您的帐户而言是全局唯一的。

UniqueId是唯一标识符,但特定于文件夹。换句话说,例如,INBOX文件夹中UniqueId5的邮件将与Starred文件夹中UniqueId5的邮件不同。

但是,在 GMail 上,INBOXGMailMessageId5的邮件将与Starred文件夹中具有相同GMailMessageId的邮件相同。它们都将引用完全相同的消息。

要了解为什么会这样,GMail 实际上只有 1 个文件夹 (All Mail),您的所有消息都位于其中。您的所有其他文件夹,包括INBOXDraftsSent等,都只是All Mail文件夹的虚拟视图,用于过滤掉所有没有相应 GMailLabel的邮件。

因此,如果您向一组邮件添加标签,它们将显示在您的INBOX中,并显示在与您刚刚创建的标签名称匹配的新文件夹中。

相关内容

  • 没有找到相关文章

最新更新