Получите подробные сообщения онлайн-обмена Exchange, используя InternetMessageId - PullRequest
0 голосов
/ 07 октября 2018

Когда я получаю событие SendAs (из другого источника аудита MS), оно содержит очень мало информации о самом сообщении, но имеет идентификатор InternetMessageId.
Я пытаюсь получить дополнительную информацию, используя егоно получаю только ошибки.

Во-первых, с MessageTraceDetail отчетом , я попытался извлечь, используя InternetMessageId как MessageId и как MessageTraceId, оба возвращают w/ та же ошибка:

GET https://reports.office365.com/ecp/reportingwebservice/reporting.svc/MessageTraceDetail
с запросом: "$filter" -> "MessageId eq guid'<AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE@mycorp.onmicrosoft.com>'"

{ "odata.error": { "code": "", "message": { "lang": "en-US", "value": "Unrecognized 'Edm.Guid' literal 'guid'<AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE@mycorp.onmicrosoft.com>'' at '13' in 'MessageId eq guid'<AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE@mycorp.onmicrosoft.com>''." } } }

Во-вторых, с Microsoft Graph API getсообщение

Я создал приложение AD и предоставил ему и приложение, и делегированные разрешения для всех связанных с почтой сообщений.

Запрос был с именем пользователя и идентификатором сообщения:

GET https://graph.microsoft.com/beta/users/myuser@mycorp.onmicrosoft.com/messages/%3AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE@mycorp.onmicrosoft.com%3E

, который генерирует общий 500 Internal Server Error.

Что я делаю не так?

Есть ли какой-либо другой API, который позволяетполучить детали сообщения, используя InternetMessageId?

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Вы можете попробовать выполнить следующий запрос Graph API:

https://graph.microsoft.com/v1.0/me/messages?$filter=internetMessageId eq '<1430948481468.34600@THCIE7Dev2.onmicrosoft.com>'

Для получения дополнительной информации перейдите по ссылке: Microsoft Graph API - найти сообщение по адресу internetmessageid

0 голосов
/ 08 октября 2018

GET https://reports.office365.com/ecp/reportingwebservice/reporting.svc/MessageTraceDetail с запросом: "$ filter" -> "MessageId eq guid ''"

Хотя MessageId может содержатьGUID это не тип данных Guid, поэтому просто запросите его как строку, однако вам нужно будет экранировать строку, чтобы использовать ее, например

System.Uri.EscapeDataString (("MessageId eq '" + InternetMessageId + "'")

https://graph.microsoft.com/beta/users/myuser@mycorp.onmicrosoft.com/messages/%3AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE@mycorp.onmicrosoft.com%3E

указанный здесь идентификатор является идентификатором хранилища Exchange для элемента, который отличается от InternetMessageId, который необходимо выполнить.поиск сообщения с использованием InternetMessageId, например

https://graph.microsoft.com/v1.0/me/messages?$filter=internetMessageId eq '<AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE@mycorp.onmicrosoft.com>'
...