问题描述
我们正在将 MS Graph API 集成到我们的 c# 应用程序中。按照这篇文章 Send Mail Doccumentation 发送邮件工作正常。但是我面临着 ConversationIndex(主要是线程)的问题。 通过 API 发送的邮件的 ConversationIndex 与收件人对同一邮件的回复不同。因此,它无法识别线程。
以下是用于发送邮件的有效载荷。有人可以帮我处理发送邮件时丢失的任何钥匙或财产吗?
{
"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"
}
解决方法
会话索引的结构
[reserved-1B] [timestamp-5B] [GUID-16B] [timestamp-5B][timestamp-5B]...[timestamp-5B]
同一会话线程的所有消息部分都具有相同的 16 字节 GUID。
Header Block 中的 5-Bytes [timestamp]:接收消息时的系统时间转换为 FILETIME 格式。
子块中的 5 字节 [时间戳]:子块仅适用于 Outlook 邮件,以指示线程中的后续邮件,同时保持标题块属性相同。每条回复对话的消息都会在末尾添加一个 [时间戳] 以创建新的对话索引。
属于同一会话线程的消息的相对顺序: 对于属于同一 GUID 的所有消息,按会话索引值对消息进行排序。
请参阅此处的文档以更好地理解。
如果有帮助,请点赞。谢谢!