Получение почтовых элементов с помощью Id и Outlook REST API
Учитывая список идентификаторов (или ItemIds), как мы можем эффективно получать электронные письма с OutlookREST Api?
Я попытался подделать следующий запрос.
https://outlook.office365.com/api/beta/me/MailFolders/<somefolderId>/messages?$filter=((Id eq 'firstId') or (Id eq 'secondId') or (Id eq 'thirdId'))
Но я получил ошибку BadRequest 400: "Свойство Id не поддерживает фильтрацию", что очень ясно.
В качестве обходного пути я использую InternetMessageId (мне все равно, какая "копия" письма возвращается). Есть ли способ использовать Id для достижения лучшей производительности?
1 ответ
Решение
Вы можете сделать до 20 человек GET
запросы для каждого идентификатора в пакетном запросе. Это доступно только на beta
конечная точка прямо сейчас.
Что-то вроде:
POST https://outlook.office.com/api/beta/$batch HTTP/1.1
Authorization: Bearer aGFwcHlnQGRr==
Host: outlook.office.com
Content-Type: multipart/mixed; boundary=batch_myBatchId
--batch_myBatchId
Content-Type: application/http
Content-Transfer-Encoding: binary
GET /api/beta/me/messages/{id1} HTTP/1.1
--batch_myBatchId
Content-Type: application/http
Content-Transfer-Encoding: binary
GET /api/beta/me/messages/{id2} HTTP/1.1
--batch_myBatchId--