当我从其他MS审核来源获得事件SendAs
时,它几乎不包含消息本身的信息,但是具有InternetMessageId
标识符。
我正在尝试使用它获取其他信息,但只会收到错误。
首先使用w MessageTraceDetail
report,我尝试通过将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 of get message
我创建了一个AD应用程序,并授予了所有与“邮件”相关的“应用程序”和“委派”权限。
该请求带有用户主体名称和消息ID:
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
。
我在做什么错了?
是否有其他可以使用InternetMessageId
获取消息详细信息的API?
答案 0 :(得分:0)
获取https://reports.office365.com/ecp/reportingwebservice/reporting.svc/MessageTraceDetail 查询:“ $ filter”->“ MessageId eq guid”“
虽然MessageId可以包含GUID,但它不是Guid数据类型,因此只需将其查询为String即可,但是您需要转义该字符串才能使用它,例如
System.Uri.EscapeDataString((“ MessageId eq'” + InternetMessageId +“'”)
此处引用的ID是该商品的Exchange存储标识符,该标识符不同于您必须使用InternetMessageId搜索消息的InternetMessageId,例如
https://graph.microsoft.com/v1.0/me/messages?$filter=internetMessageId eq '<AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE@mycorp.onmicrosoft.com>'
答案 1 :(得分:0)
您可以尝试以下Graph API请求:
https://graph.microsoft.com/v1.0/me/messages?$filter=internetMessageId eq '<1430948481468.34600@THCIE7Dev2.onmicrosoft.com>'
有关更多信息,请参见链接: Microsoft Graph API - find message by internetmessageid