Outlook Mail ID для связи с Graph? - PullRequest
0 голосов
/ 07 мая 2019

У меня есть почтовый элемент надстройки Outlook, в котором мне нужно найти идентификатор, чтобы я мог использовать его для связи с Microsoft Graph.

Почтовый EntryID не совпадает с идентификатором сообщения Microsoft Graph.

Единственный способ понять, как это сделать - это получить PR_INTERNET_MESSAGE_ID вот так:

Public Shared Function GetInternetMessageID(ByRef mail As MailItem) As String
    Try
        Dim s As String = mail.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001F").ToString.ToLower.Replace(vbCrLf, " ").Replace("  ", "").Replace("message-id:<", "message-id: <")
        Return "<" + s.GetInnerString("message-id: <", ">") + ">"
    Catch ex As System.Exception
        Return String.Empty
    End Try
End Function

А затем получите сообщение от Графика, как это:

https://graph.microsoft.com/v1.0/me/messages?$filter=internetMessageId eq '<HE1AR0301DD2555F3F27E45C4E1100@HE1PR1301MB2255.eurprd03.prod.outlook.com>'

Но получение «PropertyAccessor.GetProperty» из приведенного выше кода идет медленно - занимает 3-4 секунды.

Так что теперь у меня есть три разных идентификатора:

  • MailItem EntryID
  • PR_INTERNET_MESSAGE_ID
  • График ID сообщения

Хммм.

Могу ли я найти сообщение Graph, используя mailitem EntryID? ... или я могу найти идентификатор сообщения Graph в почтовом элементе Outlook?

Как вы, ребята, используете почтовый элемент надстройки Outlook и ищите элементы в Microsoft Graph для этого почтового элемента?

1 Ответ

1 голос
/ 07 мая 2019

Единственный способ, который я нашел, - преобразовать идентификатор записи MAPI в идентификатор EWS с помощью операции ConvertId EWS, а затем заменить «+» на «_» и «/» на «-».

...