【问题标题】:How to get unique message id from email message using office 365 API如何使用 office 365 API 从电子邮件消息中获取唯一消息 ID
【发布时间】:2017-06-02 18:54:31
【问题描述】:

我正在使用 Microsoft 图形 REST API 我正在使用以下 URl 从收件箱中获取电子邮件,并将它们存储在 mysql 数据库中

我正在使用 id "id": "AAMkADczNjA0MTM3LTQ1YmU.... 作为唯一标识符,但我发现这不是唯一标识符,因为在我的数据库中,不同消息的 id 相同。那么我在哪里可以找到电子邮件的唯一消息 ID。

获取https://graph.microsoft.com/v1.0/me/messages

【问题讨论】:

    标签: office365 microsoft-graph-api


    【解决方案1】:

    在什么范围内独一无二?给定邮箱,还是跨邮箱?

    【讨论】:

    • 给定邮箱的消息 ID。如果我的收件箱中有 1000 封电子邮件,我会看到邮件 ID 不是唯一的,并且两个不同的电子邮件可能存在相同的邮件 ID。
    • 这应该是不可能的。如果同一个邮箱中有两封具有完全相同 id 的邮件,Exchange 存储就会出现各种问题。通常,当我认为 2 个 id 相同时,仔细检查后我发现有一个字符不同。我们在这里讨论的是 ItemId(主要 id),对吧?不是互联网消息 ID 之类的东西?
    • 是 ItemId(主 ID)。那么消息是否有任何唯一标识符
    • EWS/REST 返回的 id 使 id 个邮箱是唯一的,因为我们将邮箱身份与 entryId 和一些具体细节一起嵌入到 id 中。 但是,ItemId 是基于 PR_ENTRYID 的,这意味着当项目从一个文件夹移动到另一个文件夹(或从邮箱到邮箱)时,id 会改变。此外,Exchange 存储不会重复使用条目 ID。因此,给定项目的 ItemId 是唯一的,但不是一成不变的......
    • 从现在开始尝试将此添加到您的请求中:首选:IdType=”ImmutableId”
    【解决方案2】:

    消息 ID 可能看起来相同,但实际上它们并不相同。有些字符是不同的。

    AQMkADAwAT...XFR0AAAA0DckhAAAA
    AQMkADAwAT...XFR0AAAA0DckeAAAA
    

    【讨论】:

      【解决方案3】:

      默认情况下,MySQL 字符串比较不区分大小写,因此可能会引起您的注意。
      要检查 id 的大小写以及使用 BINARY 例如

      SELECT * FROM table WHERE BINARY `message_id` = "AAMkADczNjA0MTM3LTQ1YmU...
      

      【讨论】:

      • (其中涉及的字符串之一是固定的(例如,文字),我会装饰它。显式指定 COLLATION 怎么样?)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      相关资源
      最近更新 更多