【问题标题】:Is the UID provided by MS Exchange POP3 UIDL command truly unique?MS Exchange POP3 UIDL 命令提供的 UID 真的是唯一的吗?
【发布时间】:2009-04-17 17:57:32
【问题描述】:

我在 Perl 中使用 Net::POP3 来遍历 MS Exchange 服务器上的邮箱。我对每个消息编号运行 UIDL 命令,并将返回的 ID 与以前看到的 ID 进行比较,以查看我过去是否处理过此消息。但是,我还发现在单个 POP3 邮箱中,相同的 UID 似乎针对不同的邮件多次出现。

知道为什么会发生这种情况吗? UID 不是真正唯一的吗?还是邮件在同一个邮箱中以某种方式重复?

【问题讨论】:

    标签: perl exchange-server pop3 uidl


    【解决方案1】:

    The RFC 说:

    虽然它通常更适合于 服务器实现 在 maildrop 中存储任意分配的唯一 ID, 本规范旨在允许唯一 ID 计算为消息的哈希值。 客户应该能够 处理两个相同副本的情况 maildrop 中的消息具有相同的唯一 ID。

    [我的重点]

    【讨论】:

    • 谢谢,这正是我想要的。看来我处理得很好,然后,当我遇到一个已经见过的 UID 时,我将它视为重复并忽略该消息。一个切题的问题是:“这种重复消息是如何发生的?”但这超出了原始问题的范围。
    • @Peter Wood 只是一个快速提示 - 确保 UID 查找查询正在寻找区分大小写的匹配。我遇到了问题,因为默认行为不区分大小写,这导致我的代码错误地忽略了某些电子邮件。
    • 在实践中确实发生了相同消息的场景?当我在 RFC 中阅读该段落时,我认为这只是一个严格的理论情况,因为服务器写入标头的所有时间戳和 ID。
    • 也许您可以将其与TOP [id] 1 结合使用以获取标题并检查消息ID 或日期+来自+主题是否不同。
    猜你喜欢
    • 2014-12-04
    • 1970-01-01
    • 2015-10-18
    • 2012-06-13
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多