Не удается получить заголовки интернет-сообщений для некоторых писем - PullRequest
0 голосов
/ 08 апреля 2019

Я использую Microsoft Graph Client для Node.js для получения сообщений электронной почты.Меня интересуют только заголовки.Код работает, но недавно я получил некоторые ошибки при получении internetMessageHeaders через API.

Для некоторых сообщений API не возвращает никаких данных для этого поля (и код не проверялэто, следовательно, ошибки).

Я попытался вручную выполнить запросы с помощью POSTMAN.Использование ?$select=internetMessageHeaders в качестве параметра запроса для выборки только заголовков.Если я удалю параметр запроса, я смогу получить сообщение обычным образом (тело и т. Д.).

Я не смог найти нигде в документации, почему это произошло.Любые идеи о том, что это происходит?

Редактировать: Вот код node.js, который я использую

const MicrosoftGraphClient = require("@microsoft/microsoft-graph-client").Client 

async function fetchEmailMessageHeaders(id, credentials) {
  let client = MicrosoftGraphClient.init({
    authProvider: callback => callback(null, credentials.access_token)
  });
  let req = client.api(id).select("internetMessageHeaders");
  let message = await req.get();
  return message.internetMessageHeaders;
}

Пример вывода (значение сообщения var):

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('156751349d3cc68b')/messages(internetMessageHeaders)/$entity",
  "@odata.etag": "W/\"CQAAABYAAABcr9US8aH2RIGaOGQZwDg3AAKyfdpk\"",
  "id": "AQMkADAwATM0MDAAMS1hZWIxLThjZmYALTAwAi0wMAoARgAAA3wcQrEUgfhHoZ0BD2jmyXYHAFyv1RLxofZEgZo4ZBnAODcAAAIBDAAAAFyv1RLxofZEgZo4ZBnAODcAArJaPEcAAAA=",
  "internetMessageHeaders": [
    {
      "name": "Received",
      "value": "from BY2NAM01HT225.eop-nam01.prod.protection.outlook.com (2603:10a6:803:118::39) by VI1PR0301MB2221.eurprd03.prod.outlook.com with HTTPS via VE1PR03CA0050.EURPRD03.PROD.OUTLOOK.COM; Wed, 10 Apr 2019 11:41:55 +0000"
    }
    ...
  ]
}

Проблема в том, что для некоторых электронных писем сообщение не содержит internetMessageHeaders.

Я использую входящую подписку для получения событий для новых сообщений электронной почты из Outlook.Когда событие получено, я использую API для извлечения сообщения и извлечения из него заголовков.

Ссылка на API здесь

Edit2:

ЗдесьПример вывода JSON события, которому также не удается получить заголовки:

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('53e07bf4-bb6a-4a82-a724-37dadfb1cf11')/messages(internetMessageHeaders)/$entity",
  "@odata.etag": "W/\"CQAAABQAAADdeU+v2VzbRpZMSJGral7kAAXJkA==\"",
  "id": "AAMkADhmMmVmM2NjLWFhNGMtNDBlYy04NzBkLTg5MmU2OWI0ODU4MgBGAAAAAAALg6E-e6CxRLEbZfrhFaDBBwAzAAMgKF1iTp242t34rFy5AAAAAAAOAAB5l_O62bUUTqTLk6KYrl4sAAGrJcjfAAA="
}

1 Ответ

0 голосов
/ 24 апреля 2019

Кажется, что internetMessageHeaders не установлены, когда на электронную почту отвечает outlook.office365.com. Я также не могу видеть заголовки сообщений при проверке сообщений с помощью Outlook на Mac.

...