2016-10-03 3 views
1

Я пытаюсь использовать Microsoft Rest API для отправки электронной почты от имени наших пользователей. Когда я создаю сообщение как черновик, я возвращаю идентификатор, который я могу использовать в будущих запросах на редактирование, удаление, просмотр полного разговора (после его отправки) и т. Д.Получение идентификатора электронной почты из API REST Outlook при отправке электронной почты

Я не хочу его сохранять как проект, поскольку у меня нет причин, я просто хочу отправить его напрямую. После того, как он будет отправлен, я все равно хочу просмотреть полный разговор. Однако, если я просто отправлю электронное письмо (используя конечную точку/sendmail), я не получаю этот идентификатор. Есть все равно, чтобы получить его? Вот мой запрос:

POST https://outlook.office.com/api/v2.0/Users/email/sendmail

{ 
    "Message": { 
     "Subject": "Test", 
     "Importance": "Normal", 
     "ToRecipients": [{ 
      "EmailAddress": { 
       "Address": "<email>", 
       "Name": "<name>" 
      } 
     }], 
     "Sender": { 
      "EmailAddress": { 
       "Address": "<email", 
       "Name": "<name>" 
      } 
     }, 
     "Body": { 
      "ContentType": "HTML", 
      "Content": "<html>\\n<head>\\n <style>\\n p { color: red; }\\n </style> \\n</head>\\n<body>\\n <p>Test</p>\\n</body>\\n</html>\\n" 
     } 
    }, 
    "SaveToSentItems": "true" 
} 

Код ответа HTTP 202, электронная почта отправляет, но тело не является пустым (без содержания, вообще).

Я не думаю, что это имеет значение, поскольку я могу воссоздать это в Postman, но я запускаю это в Nodejs, используя пакет node-outlook.

ответ

0

Письма в Exchange через REST и EWS: отправлены для транспортировки, но фактическая отправка и последующее сохранение в папку отправленных объектов выполняются async. Вот почему вы не получаете идентификатор. Транспортировка - это тот, кто на самом деле пишет электронное письмо в папку отправленных товаров, а не REST.

Если вам действительно нужно найти элемент после его сохранения в папке sentItems, установите что-то вроде PR_SEARCH_KEY, а затем сделайте представление о папке отправленных предметов и найдите это значение ключа поиска.

Также обратите внимание, что при сохранении черновика возвращаемый идентификатор будет отличаться от идентификатора элемента в папке отправленных элементов, поскольку идентификатор папки является частью идентификатора элемента, так что id wouldn ' t поможет вам в любом случае.

+0

Да, это похоже на то, что я ищу. Мне сложно понять, как использовать его в REST API, возможно, потому, что я не очень хорошо знаком с Outlook API вообще. Я думаю, что это документ, который я ищу: https://msdn.microsoft.com/en-us/office/office365/api/extended-properties-rest-operations, но мне трудно понять, как идентифицировать свойство (имя, руководство и т. д.). У вас будет пример того, как его использовать? – polson136

+1

Хорошо, я получил его, добавив это в сообщение: '" SingleValueExtendedProperties ": [{" PropertyId ":" String {8ECCC264-6880-4EBE-992F-8888D2EEAA1C} Id 0x300B "," Value ":" 1 "} ] ', но я до сих пор не понимаю, почему это работает. В частности, я не понимаю, для чего нужен GUID. – polson136

+0

Guid - просто пространство имен. Вышеуказанное означает свойство 0x300B в пространстве имен . MAPI делает это так, что 0x300B в моем пространстве имен не конфликтует с 0x300B в вашем пространстве имен. –

Смежные вопросы