0

我们正在将 MS Graph API 集成到我们的 c# 应用程序中。按照这篇文章发送邮件文档发送邮件工作正常。但我面临着 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"
}
4

1 回答 1

0

对话索引的结构

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

<-------------Header Block---------------->​&lt;-------------------Child Blocks------------------>

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

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

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

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

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

跟踪对话

ConversationIndex 属性

于 2021-06-01T08:40:48.810 回答