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

How to get the mail body beyond 255 characters?

我正在通过以下代码检索电子邮件,但我只收到 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);
      });
    }
  });

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

Muthurathinam 是正确的,但为了清楚和将来的使用,我添加了一个更深入的答案。

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

  • subject
  • from
  • receivedDateTime
  • isRead
  • bodyPreview

您只收到 255 个字符的消息的原因是您请求 bodyPreview。查看文档,bodyPreview定义如下:

bodyPreview - String - The first 255 characters of the message body. It is in text format.

您实际要查找的是 body 属性。 body 属性 returns 包含两个属性的 itemBody 对象:

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

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

这是您的示例代码,已重构为使用 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);
      });
    }
  });