【问题标题】:Microsoft Graph send email api conversation Index is differentMicrosoft Graph 发送电子邮件 api 对话索引不同
【发布时间】:2021-05-27 13:35:24
【问题描述】:

我们正在将 MS Graph API 集成到我们的 c# 应用程序中。按照这篇文章Send Mail Documentation发送邮件工作正常。但是我遇到了 ConversationIndex(主要是线程)的问题。

ConversationIndex 通过 API 发送的邮件与收件人对同一邮件的回复不同。因此,它无法识别线程。

这是用于发送邮件的有效负载。任何人都可以帮我解决我在发送邮件时丢失的任何钥匙或财产吗?

{
  "message": {
    "subject": "Meet for lunch?",
    "body": {
      "contentType": "Text",
      "content": "The new cafeteria is open."
    },
    "toRecipients": [
      {
        "emailAddress": {
          "address": "fannyd@contoso.onmicrosoft.com"
        }
      }
    ],
    "ccRecipients": [
      {
        "emailAddress": {
          "address": "danas@contoso.onmicrosoft.com"
        }
      }
    ]
  },
  "saveToSentItems": "false"
}

【问题讨论】:

  • Hi Harsh,请在引文中以粗体添加下方的所有文本,以获得更好的阅读体验。欢迎来到 SO :)

标签: email graph microsoft-graph-api microsoft-exchange email-threading


【解决方案1】:

对话索引结构

[reserved-1B] [timestamp-5B] [GUID-16B] [timestamp-5B][timestamp-5B]…[timestamp-5B]

<-------------Header Block---------------->​<-------------------Child Blocks------------------>

同一对话线程的所有消息部分都具有相同的 16 字节 GUID。

5-Bytes [timestamp] in Header Block: 收到消息时转换为 FILETIME 格式的系统时间。

子块中的 5 字节 [时间戳]:子块仅存在于 Outlook 邮件中,以指示线程中的后续邮件,同时保持标题块属性相同。对对话的每条消息回复都会在末尾添加一个 [timestamp] 以创建一个新的 conversationIndex。

属于同一对话线程的消息的相对排序: 对于属于同一 GUID 的所有消息,按 conversationIndex 值对消息进行排序。

请参阅此处的文档以更好地理解。

Tracking conversations

ConversationIndex property

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多