【问题标题】:Google Script star an e-mailGoogle Script 为电子邮件加注星标
【发布时间】: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


【解决方案1】:

问题似乎是 GmailApp.starMessage() 接受 GmailMessage 对象,但您为该方法提供了一个字符串(从您收到的错误消息中可以看出)。

您的消息发送后,您需要在用户的邮箱中再次找到它,然后给它加星标。

有一个 answered question 关于检索刚刚发送的消息以进行进一步处理 - 这可能对此有所帮助。

【讨论】:

  • 谢谢罗伯特,还有一个问题,因为我对 Google 脚本还很陌生 - 我如何才能找到我刚刚在收件箱中发送的那条消息,然后给它加星标?一旦新消息进入,我总是会在上一条消息中加星标。我有这个 sn-p 用于发送包含消息正文的电子邮件:if (summary.length &gt; 0) { GmailApp.sendEmail(me, email_subject_to_your, summary); }
  • 不知道,我也不是很精通 Apps 脚本。:) 但我猜你可以使用 search() 方法并按发件人、收件人和主题(或任何您知道该特定邮件独有的其他信息)。
  • 谢谢,已经试过了,但我想我得再多摆弄一下。非常感谢您的帮助!
  • 那么,this SO question 可能会提供进一步的帮助。
  • 太棒了!正是我需要的。谢谢一百万罗伯特:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
  • 2013-11-03
  • 2014-01-12
  • 2021-02-02
  • 1970-01-01
相关资源
最近更新 更多