无法获取某些电子邮件的互联网邮件标头

时间:2019-04-08 20:38:08

标签: node.js microsoft-graph microsoft-graph-mail

我正在使用Microsoft Graph Client for Node.js来获取电子邮件。我只对标题感兴趣。该代码可以正常工作,但是最近我在通过API提取internetMessageHeaders时遇到了一些错误。

对于某些消息,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参考here

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 :(得分:-1)

当使用Outlook.office365.com回复电子邮件时,似乎未设置internetMessageHeaders。在Mac上使用Outlook检查邮件时,我也看不到邮件标题。