Определение переадресованных и отвеченных на сообщения электронной почты в Microsoft Graph API - PullRequest
0 голосов
/ 03 февраля 2020

Я создаю. NET Core WEB API, который служит в качестве слоя автоматизации для сообщений и календарей Outlook с использованием Microsoft Graph SDK. Одним из требований является определение того, на какие сообщения были отправлены ответы или они были пересланы.

Мне пока не ясно, как я могу определить, было ли переслано или отправлено сообщение электронной почты при использовании результатов Graph Explorer Пример запроса «Моя почта».

В этом ответе указано, что свойство ConversationId остается тем же (что действительно имеет место) и что единственное указание является либо "FW:", либо "RE:" с префиксом субъекта. Также в Документация о сообщении Я не могу найти правильный, надежный способ их идентификации.

Может кто-нибудь сказать мне, как это можно сделать?

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Если вы просматриваете почту в папке «Входящие» и хотите узнать, действовал ли на нее почтовый клиент (например, Oultook или OWA), вы можете использовать PidTagLastVerbExecuted https://docs.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% надежно поэтому, если вы делаете это для аудита, единственным способом является использование журналов отслеживания (MessageTrace в Office365)

1 голос
/ 04 февраля 2020

Электронная почта, как правило, имеет очень слабую поддержку потоков сообщений. Тем не менее, вы можете извлечь это из коллекции internetMessageHeaders.

Per RFC5322 :

Поля In-Reply-To: и References: используются при создании ответа на сообщение. Они содержат идентификатор сообщения исходного сообщения и идентификаторы сообщения других сообщений (например, в случае ответа на сообщение, которое само было ответом). Поле In-Reply-To: может использоваться для идентификации сообщения (или сообщений), на которое новое сообщение является ответом, а поле References: может использоваться для идентификации «цепочки» разговора.

Обратите внимание, что In-Reply-To является необязательным полем, поэтому оно не всегда может быть заполнено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...