如何获取超过255个字符的邮件正文?

时间:2018-09-27 06:54:50

标签: javascript microsoft-graph microsoft-graph-sdks

我正在通过以下代码检索电子邮件,但我只得到255个字符而不是整个字符。

有什么方法可以取消此限制?

const api = client
  .api("/me/mailfolders/inbox/messages")
  .top(10)
  .select("subject,from,receivedDateTime,isRead,bodyPreview")
  .orderby("receivedDateTime DESC")
  .get((err, res) => {
    if (err) {
      console.log("getMessages returned an error: " + err.message);
    } else {
      console.log("Mails are retrieving...");

      res.value.forEach(function(message) {
        console.log(message.bodyPreview);
      });
    }
  });

2 个答案:

答案 0 :(得分:2)

您正在寻找邮件正文。因此,尝试选择body而不是bodyPreview
这是图documentation的示例,其响应中包含主体。

答案 1 :(得分:2)

尿嘧啶是正确的,但是为了清楚起见和将来的用途,我添加了更深入的答案。

您的代码当前仅请求以下属性:

  • subject
  • from
  • receivedDateTime
  • isRead
  • bodyPreview

之所以只接收255个字符,是因为您要请求bodyPreview。查看文档,bodyPreview的定义如下:

  

bodyPreview-String-邮件正文的前255个字符。它是文本格式。

您真正要寻找的是body属性。 body属性返回包含两个属性的itemBody对象:

  • content-项目的内容。
  • contentType-内容的类型。可能的值为TextHTML

这意味着您将需要使用console.log(message.bodyPreview)而不是console.log(message.body.content)

这是您的示例代码,已重构为使用body

const api = client
  .api("/me/mailfolders/inbox/messages")
  .top(10)
  .select("subject,from,receivedDateTime,isRead,body")
  .orderby("receivedDateTime DESC")
  .get((err, res) => {
    if (err) {
      console.log("getMessages returned an error: " + err.message);
    } else {
      console.log("Mails are retrieving...");

      res.value.forEach(function(message) {
        console.log(message.body.content);
      });
    }
  });