【问题标题】:Is MailItem.EntryID the same for each user of shared mailbox?MailItem.EntryID 对于共享邮箱的每个用户是否相同?
【发布时间】:2022-08-16 21:18:13
【问题描述】:

我们有一个与多个操作员共享的邮箱,收集和插入 ERP 销售订单。一个订单可以由不同的操作员挑选并在 ERP 中复制。

每封电子邮件都有一个唯一的EntryID,但在阅读文档后,我无法理解共享邮箱的所有用户是否都相同,或者每个用户都有自己的EntryID

如果对所有人都一样,我可以将它记录在一个共享文件中并检查它是否由 EntryID 完成。

    标签: vba outlook exchange-server identifier mapi


    【解决方案1】:

    EntryID 属性值在配置文件中应该是唯一的。这是MS所说的:

    当在其商店中创建项目时,MAPI 商店提供程序会分配一个唯一的 ID 字符串。因此,在保存或发送 Microsoft Outlook 项目之前,不会为该项目设置 EntryID 属性。当项目被移动到另一个存储区时,EntryID 会发生变化,例如,从您的收件箱移动到 Microsoft Exchange Server 公用文件夹,或从一个个人文件夹 (.pst) 文件移动到另一个 .pst 文件。除非不移动项目,否则解决方案不应依赖 EntryID 属性是唯一的。

    以下是有关长期 EntryID 值的更多信息:

    长期条目标识符在活动配置文件中的所有消息存储中必须是唯一的;因此,当一条消息或文件夹从一个消息存储复制到另一个时,必须为其分配一个新的条目标识符。移动消息存储对象时,实现移动的消息存储提供程序将确定原始条目标识符是否保持有效。一些服务提供商为移动的对象分配新的条目标识符;其他人没有。如果有变化,新的条目标识符将包含在传递给客户的信息中,当他们收到移动通知时。

    【讨论】:

    • 非常感谢。也许您知道 - 如何检查服务提供商是否更改了条目 ID?
    • 尝试移动项目并检查值是否已更改。
    • 谢谢,试过了,不幸的是它改变了。共享邮箱中是否存在所有人都可以严格识别电子邮件的唯一邮箱 - 发件人\主题可以是理智的吗?还有什么我可以选择识别的吗?
    • 您可以为项目介绍自己的 ID。还可以尝试使用搜索键 (PR_SEARCH_KEY)。此属性提供对相关对象(例如邮件副本)的跟踪,并有助于查找不需要的事件(例如重复的收件人)。
    • 是的,我已经提到了这两种方式。
    【解决方案2】:

    这将是唯一的,但请记住,不同的条目 ID 可以引用相同的消息 - 它可能取决于它是否是从文件夹内容表(短期与长期条目 ID)、主邮箱与委托邮箱等中检索到的。条目id不能直接比较,需要使用Namespace.CompareEntryIDs

    【讨论】:

    • 谢谢。我从没想过这个洞这么深:) 所以,我可以在列表中写条目 ID,因为它们是由操作员在日志中选择的,并检查将每条新记录与日志中的 entryID 与 Namespace.CompareEntryIDs 进行比较比 PR_SEARCH_KEY 更容易
    • 是的,但这也意味着如果您有一个大列表并且您不能使用字典或哈希集来加快查找速度,查找可能会很慢。
    猜你喜欢
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    相关资源
    最近更新 更多