【发布时间】:2015-02-25 09:55:34
【问题描述】:
我有一个 Google 脚本来处理收件箱以查找丢失的电子邮件,然后将丢失电子邮件的摘要发送到我的收件箱:
var user;
var summary = "";
Logger.log("Checking last emails...");
user_list.forEach(function(user) {
var no_user_hit = true;
var query = 'from:'+user.user+' in:anywhere newer_than:' + user.deadline + 'd';
Logger.log(query);
var threads = GmailApp.search(query);
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
for (var j = 0; j < messages.length; j++) {
if (check_subject(messages[j].getSubject(), user.subject)) {
no_user_hit = false;
}
}
}
if (no_user_hit == true) {
Logger.log("Sending email with summary...");
summary = summary + "No messages from "+user.user+" with subject "+user.subject+" for the last "+user.deadline+" days \n";
}
});
if (summary.length > 0) {
GmailApp.sendEmail(me, email_subject_to_your, summary);
}
}
我想为每封发送的电子邮件加注星标作为摘要,我尝试了 starMessage(message) 但没有成功。
【问题讨论】:
-
能否请您检查控制台日志是否有任何错误消息?
-
脚本是 .gs 格式,日志没有告诉我任何异常,但是如果我执行 GmailApp.starMessage(summary);我会得到错误:找不到方法starMessage(字符串)。 (第 200 行,文件“代码”)
-
根据docs,参数应该是
GmailMessage,而不是字符串。您确定您提供的参数正确吗? -
是的,我似乎使用的不是GmailMessage,而是一个字符串。但是有没有办法在 sendEmail 方法中为字符串(即 summary)加注星标?
-
我想我现在明白了!我只是使用 'var firstThread = GmailApp.getInboxThreads(0,1)[0]; var message = firstThread.getMessages()[0]; GmailApp.starMessage(消息);'它让消息加星标。现在我只需要计算数组以使其在消息到达时直接启动消息,而不是之后。感谢您的帮助!
标签: google-apps-script gmail-api