Javascript 如何在Google应用程序脚本中为消息分配标签

Javascript 如何在Google应用程序脚本中为消息分配标签,javascript,google-apps-script,Javascript,Google Apps Script,嗨,我正在制作一个脚本,它将搜索Gmail上的邮件,如果然后分配标签给搜索邮件,但我不知道如何分配标签给邮件,我可以创建标签,但我不能分配它 另一件事,我想知道我是否使用睡眠功能的实用程序在正确与否 function addNaggingLabels() { var label = _getNaggingLabel(); var start = parseInt(UserProperties.getProperty("start")); var sheet = Sp

嗨,我正在制作一个脚本,它将搜索Gmail上的邮件,如果然后分配标签给搜索邮件,但我不知道如何分配标签给邮件,我可以创建标签,但我不能分配它

另一件事,我想知道我是否使用睡眠功能的实用程序在正确与否

    function addNaggingLabels() {
  var label = _getNaggingLabel();

  var start   = parseInt(UserProperties.getProperty("start"));
  var sheet   = SpreadsheetApp.getActiveSheet();
  var ss      = SpreadsheetApp.getActiveSpreadsheet()

  for (;;) {

  // Find all Gmail messages that have attachments
 var threads = GmailApp.search('in:inbox has:attachment larger:15M');

  if (threads.length == 0) {
    ss.toast("Processed " + start + " messages.", "Scanning Done", -1); 
    return;
  }

  for (var i=0; i<threads.length; i++) {

    var messages = threads[i].getMessages();
    UserProperties.setProperty("start", ++start);

    for (var m=0; m<messages.length; m++) {      

      var size = getMessageSize(messages[m].getAttachments());

      if (size>15) {
        Logger.log("label: " + GmailApp.createLabel("FOO"));

      }
}
  }
  }
// Wait for a second to avoid hitting the system limit
  Utilities.sleep(1000);
  return Math.round(size*100/(1024*1024))/100;

}

    function getMessageSize(att) {
  var size = 0;
  for (var i=0; i<att.length; i++) {
    //size += att[i].getBytes().length;
    size += att[i].getSize(); // Better and faster than getBytes()
  }
}
函数addNaggingLabels(){
变量标签=_getNaggingLabel();
var start=parseInt(UserProperties.getProperty(“start”);
var sheet=SpreadsheetApp.getActiveSheet();
var ss=SpreadsheetApp.getActiveSpreadsheet()
对于(;;){
//查找所有带有附件的Gmail邮件
var threads=GmailApp.search('in:inbox有:更大的附件:15M');
如果(threads.length==0){
ss.toast(“已处理”+开始+“消息”。、“扫描完成”、-1);
返回;
}

对于(var i=0;i您可以使用addLabel方法将标签应用于线程,而不是消息。此外,由于您使用的是较大的搜索运算符,因此以后无需重新检查附件大小

var threads = GmailApp.search('in:inbox has:attachment larger:15M');
var label = GmailApp.getUserLabelByName("label name goes here");

for (var t in threads) {
  threads[t].addLabel(label);
}

您好,Amit,我能够创建标签,但我无法将它们分配给大小超过15米的邮件,例如:-如果(大小>15){“我在这里放置了什么”}请查看我的答案。您需要在Gmail线程上调用addLabel方法,而不是在邮件上调用该方法。@AmitAgarwal是否可以从邮件而不是线程中添加或获取标签?