在Gmail API中获取邮件大小

时间:2019-05-28 15:12:06

标签: google-apps-script size message gmail-api

我使用Gmail API,尝试按大小查找特定的电子邮件。 我希望能够读取邮件大小。

API site中,我找不到这种方法。

我已经看到了其他使用.js脚本的方法,但是我正在使用Google脚本,如下所示:

function label_messages_without_response() {
  var emailAddress = Session.getEffectiveUser().getEmail();
  //Logger.log(emailAddress);

  threads = GmailApp.search("less");

  var size_total = 0;

  Logger.log(size_total);
  for (var i = 0; i < threads.length; i++)
  {
    var thread = threads[i];
    var lastMessage = thread.getMessages()[thread.getMessageCount()-1];
    //size_total+= thread.getMessages()[0].getSubject();   
    Logger.log(thread.getMessages()[0].getSubject());
   }

  Logger.log(size_total);
}

1 个答案:

答案 0 :(得分:1)

  • 您要检索GmailApp.search()检索到的电子邮件的总大小。
    • 您认为大小单位是“字节”。
  • 您想使用Google Apps脚本实现这一目标。

如果我的理解是正确的,那么该示例脚本如何?用作搜索查询的size:larger:smaller:的大小是正文大小。在此示例脚本中,我使用了它。

示例脚本:

function label_messages_without_response() {
  var threads = GmailApp.search("less");
  var size_total = 0;
  for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    for (var j = 0; j < messages.length; j++) {
      var mailSize = messages[j].getBody().length; // Or  messages[j].getRawContent().length
      size_total += mailSize;
      Logger.log("Subject: %s, size: %s", messages[j].getSubject(), mailSize);
    }
  }
  Logger.log("Total size: %s", size_total);
}

注意:

  • 如果要检索每封电子邮件的总大小,请将var mailSize = messages[j].getBody().length替换为var mailSize = messages[j].getRawContent().length。这样,就可以检索出包含正文中特殊字符,附件文件和标头的大小。

参考文献: