【问题标题】:Best way for email synchronisation: POP3 UIDL, IMAP UID, message-ID电子邮件同步的最佳方式:POP3 UIDL、IMAP UID、message-ID
【发布时间】:2014-12-04 17:06:33
【问题描述】:

我正在制作一个支持 POP3 和 IMAP 的邮件客户端。我正在使用 vmime api 在 C++ 中对客户端进行编程。我的问题是:同步邮件的最佳方式是什么?

我认为标识符是个好方法,但我不知道同步邮件的最佳标识符是什么:

  • IMAP:UID (RFC 3501)
  • POP3:UIDL (RFC 1932)
  • Internet 格式消息:消息 ID (RFC 5322)

message-ID 是最容易使用的,但是否有可能有两个相同的 message-ID? UID (IMAP) 和 UIDL (UID) 有同样的问题吗?

你能帮帮我吗? 提前谢谢你。

【问题讨论】:

    标签: imap pop3 vmime


    【解决方案1】:

    虽然 Max 说 (FolderName, UIDVALIDITY, UID) 的元组永远不会引用任何 other 消息是正确的,但遗憾的是,不能保证总是只使用相同的元组来引用给定的消息.服务器被允许碰撞UIDVALIDITY,并且没有标准的方法来提供在消息移动中持续存在或识别重复消息的唯一标识符。

    【讨论】:

      【解决方案2】:

      在 IMAP 中,(FolderName, UIDVALIDITY, UID) 的元组通过规范保证对于给定的服务器永远是唯一的。请注意,需要所有三个值来保证唯一性。每个文件夹都有自己的 UID,它们可能会重叠。已删除和重命名的文件夹也可能具有相同的 UID,但必须具有不同的 UIDVALIDITY。

      在 POP3 中,UIDL 通常就足够了,因为没有文件夹。

      Message-ID 通常由发件人生成,因此不能保证唯一。复制这一点很简单:将邮件从一个 IMAP 文件夹复制到另一个。

      【讨论】:

        猜你喜欢
        • 2018-10-08
        • 1970-01-01
        • 2012-08-14
        • 1970-01-01
        • 2014-07-11
        • 2017-09-23
        • 2014-09-27
        • 2010-09-17
        • 2020-03-14
        相关资源
        最近更新 更多