确定在图形 API 中转发和答复的电子邮件Microsoft



我正在构建一个.NET Core WEB API,它使用Microsoft Graph SDK作为Outlook消息和日历的自动化层。其中一个要求是确定哪些邮件已回复或已转发。

目前我还不清楚在使用 Graph 资源管理器"我的邮件"示例请求的结果时如何确定是否已转发或回复电子邮件。

这个答案指出,ConversationId属性保持不变(确实如此(,唯一的指示是前缀为主题的"FW:"或"RE:"。同样在消息文档中,我似乎找不到一种适当、可靠的方法来识别这些。

谁能告诉我如何做到这一点?

如果您在收件箱中查看邮件,并且想知道它们是否已由邮件客户端(例如Oultake或OWA(操作,那么您可以使用PidTagLastVerbExecute https://learn.microsoft.com/en-us/office/client-developer/outlook/mapi/pidtaglastverbexecuted-canonical-property(这是outlook确定它的方式(,例如

https://graph.microsoft.com/v1.0/me/messages?$expand=SingleValueExtendedProperties($filter=(Id%20eq%20'Integer%200x1081'))

如果回复了消息,您将看到类似

"singleValueExtendedProperties": [
{
"id": "Integer 0x1081",
"value": "102"
}
]

这仍然不是 100% 可靠的,因此,如果您执行此操作进行审核,唯一的方法是使用跟踪日志(Office365 中的消息跟踪(

一般来说,电子邮件对消息线程的支持非常弱。也就是说,您也许可以从internetMessageHeaders集合中提取此内容。

每RFC5322:

References:In-Reply-To:创建 回复邮件。 它们保存原始消息标识符 消息和其他消息的消息标识符(例如, 在回复消息的情况下,该消息本身就是回复(。 这In-Reply-To:字段可用于标识消息(或 消息(,新消息是对其的回复,而References:字段可用于标识 谈话。

请注意,In-Reply-To是可选字段,因此可能并不总是填充它。

相关内容

最新更新