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

最佳答案

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);
      });
    }
  });

07-28 05:09