Outlook API获取邮件未返回附件集合

时间:2016-04-26 15:26:57

标签: node.js outlook outlook-restapi

我使用Outlook Mail REST API来获取用户电子邮件集合的JSON对象,并在自定义Web界面中显示数据。我需要显示电子邮件列表,列表中的每封电子邮件都需要指明该特定电子邮件的附件数量。

我正在使用来自Outlook Mail REST API reference #Getmessages路由的获取消息来获取执行此操作所需的所有数据。但是,当我在$select中指定我想要Attachments时,我从未收到每封电子邮件的附件集合;它只是缺失了。

我可以为每封电子邮件获取附件集合,并为每封电子邮件提供单独的请求,如果我需要一次100封电子邮件的附件计数,这将是丑陋的。

根据这个:(https://msdn.microsoft.com/office/office365/api/complex-types-for-mail-contacts-calendar#RESTAPIResourcesMessage) 我应该能够指定在获取消息时是否需要附件集合,但它不起作用。我正在使用Node.js来收集电子邮件:

var requestUrl = "https://outlook.office.com/api/v2.0/me/messages";

var queryParams = {
    '$select': 'Subject, ReceivedDateTime, From, ToRecipients, HasAttachments, Attachments, WebLink, CcRecipients, Body',
    '$orderby': 'ReceivedDateTime desc',
    '$filter' : dateString,
    '$top': 300
};

...

Returned Email Object in Collection

$select中的每个选项都可以正常使用,如果我将其包含或排除,但Attachments始终缺失。有没有人有解决方案?

1 个答案:

答案 0 :(得分:1)

Attachments是导航属性,因此您需要通过附加$expand参数来请求“展开”:

https://outlook.office.com/api/v2.0/me/mailfolders/inbox/messages?
  $select=Subject,Attachments&$filter=HasAttachments eq true&$expand=Attachments