【问题标题】:Mailkit: What is the UniqueIDMailkit:什么是 UniqueID
【发布时间】:2018-03-07 00:37:12
【问题描述】:

在谷歌搜索没有结果后,我会问我的问题:

Mailkit.UniqueId 是什么?

在struct的元数据中只是简单地读取

表示 MailKit.IMailFolder 中消息的唯一标识符

1) 它是唯一的吗?比如说收件箱,然后 Bin 或 Sent 可能再次具有相同的号码(我从目前检索到的消息中对此表示怀疑)

2) 整个 imap 帐户是否唯一?

3) 是mailkit还是Imap Server生成的id?

4) 控制此 ID 的增量以确保其唯一性的因素。

5) 这个 UniqueID 和 MessageID 的主要区别是什么?

【问题讨论】:

  • 如果你想用特定的信息做某事,我宁愿建议你使用MessageId,我发现它是独一无二的。不知道唯一ID,它似乎只是计数电子邮件...例如,检索到的电子邮件将其 uniqueId 设置为 1 ,第二封电子邮件将具有 2 等等
  • 我也注意到了。 UniqueID 似乎只是对收件箱中的消息进行编号。但是,MessageID 也不是 100% 可靠的,因为尽管它应该在那里,但它可能会丢失或具有很容易在繁忙的收件箱中发生冲突的值。就我的意图和目的而言,如果我可以指望 UniqueID 在所有 MailFolders 中对于该 imap 帐户是唯一的就足够了。
  • MessageId 是独一无二的,至少看起来是这样.....嘿...我有问题here ...你能帮帮我吗?
  • 好的,我想我找到了一些答案,毕竟wesmorgan.blogspot.de/2012/07/… 那就是 MessageID 应该 是唯一的,但它没有被强制执行。在此版本的 Imap tools.ietf.org/html/rfc3501 中,它表示 UniqueID 和验证 id 对于邮件帐户是唯一的

标签: c# mailkit


【解决方案1】:

MailKit UniqueId 表示 IMAP UID。 IMAP 定义的UID 是一个每个文件夹唯一的数值

这意味着收件箱中的邮件可以与已发送文件夹中的不同邮件具有相同的 UID。

根据您问题下方的评论讨论,是的,UID 是按顺序分配的,这意味着只要从未从文件夹中删除邮件,文件夹中的第一条邮件的 UID 将为1。第二条消息的 UID 为2,以此类推。

但是,一旦邮件开始从文件夹中删除,情况就不会如此了。

例如,假设我们创建一个新的 IMAP 文件夹并附加 10 条消息。

他们的 UID 将是:123456789、@9876554。 p>

如果我然后去删除邮件:13579,然后查看仍然保留在文件夹中的邮件,它们将具有以下 UID :246810

【讨论】:

  • 谢谢。至于你的最后一个例子;当删除后新的 msg 到达时,它会得到 uid 11,对吗?
  • 所以当我保存 IMAP 帐户、uid 和邮件文件夹的组合时,我也有一个全局唯一标识符(不是像 Message-ID 这样的长字符串),对吧?
  • @jstedfast 参考您的示例,如果我删除 1、3、5、7、9 和 10,下一个 UID 将是 9 还是 11?
  • 下一个 uid 将是 11。uid 永远不会被重复使用。
猜你喜欢
  • 2017-07-14
  • 2015-05-25
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 2020-06-27
相关资源
最近更新 更多