Gmail脚本:归档不在我的联系人列表中且超过2天的人员发送的电子邮件

时间:2016-03-14 13:33:54

标签: email google-apps-script gmail gmail-api google-contacts

我正在使用基于此here的脚本自动存档超过7天但未加星标的电子邮件。加星标的电子邮件会保留在收件箱中,直到取消星标,此时超过7天的电子邮件符合归档规则。

我的实际剧本:

function GmailArchive() {
  var batchSize = 100 // Process up to 100 threads at once
  var threads = GmailApp.search('label:"inbox" -label:"starred" older_than:7d');
  for (j = 0; j < threads.length; j+=batchSize) {
    GmailApp.moveThreadsToArchive(threads.slice(j, j+batchSize));
  }
}

我想要做的是在脚本中设置一个类似的并行功能,用于存档超过1天的电子邮件以及不在我的Google通讯录中的电子邮件。如果我们可以避免必须申请一个很棒的标签,那么如果我们这样做就没有什么大不了的。

到目前为止我的想法:

检查getTo() getCc()getBcc()字段,如果其中任何一个字段中的多个地址存档超过2天。

var thread = GmailApp.getInboxThreads(0,1)[0]; // get first thread in inbox
 var message = thread.getMessages()[0]; // get first message
 Logger.log(message.getTo()); // log the recipient of message

我不知道返回到哪里,Logger.log?那会是文件还是控制台?如何捕获返回并在if&gt; 1中使用它然后存档,否则继续到下一个消息/线程等,直到它用完消息/线程等并退出。

我没有正式的编码培训,我很抱歉。我正在查看的参考资料是here

1 个答案:

答案 0 :(得分:1)

对于初学者,我建议您首先查看整个Google Apps Script documentation,以便更容易理解。

如果您正在使用Apps Script API中的Logger类,则Logger.log将成为控制台消息。在大多数编程语言中,您可以通过将函数调用分配给变量或仅通过操作中的函数调用来捕获方法的返回值。

混合使用Gmail和Contacts Script API,我想到的一种方法是检索所有早于1d的收件箱电子邮件。 循环到每封电子邮件,然后通过getFrom()检索发件人的电子邮件地址,然后使用检索到的电子邮件getContactsByEmailAddress()。如果它返回null,则归档电子邮件。

bar<>()