1

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

2 回答 2

2

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

于 2018-09-27T07:57:21.777 回答
2

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

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

  • 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);
      });
    }
  });
于 2018-09-27T18:07:58.027 回答