尝试获取应用脚本以检查消息进入的星期几,如果在某些天(例如星期六和星期日)收到消息,则自动回复消息。我希望格式化消息中的文本有点包括一些文本的颜色,回车等。我有下面的代码使用两个错误。 1.回复文本未格式化。 2.如果其他人打开了不在办公室的消息,我最终会收到一连串的电子邮件。这可以通过向消息线程添加标签来解决,自动回复回复?
感谢您提前提供任何帮助。
function autoReply() {
var interval = 5; // if the script runs every 5 minutes; change otherwise
var daysOff = [6,0]; // 1=Mo, 2=Tu, 3=We, 4=Th, 5=Fr, 6=Sa, 0=Su
var message = "**Auto Reply** Thank you for your email! I am out of the office for the weekend spending time with my family. I will be back in the office Monday at 8:00 am. My usual office hours are Monday- Friday 8:00 am-4:00 pm EST. I monitor email periodically over weekends for emergencies. I look forward to assisting you. Thank you!";
var date = new Date();
var day = date.getDay();
if (daysOff.indexOf(day) > -1) {
var timeFrom = Math.floor(date.valueOf()/1000) - 60 * interval;
var threads = GmailApp.search('is:inbox after:' + timeFrom);
for (var i = 0; i < threads.length; i++) {
threads[i].reply(message);
}
}
}
答案 0 :(得分:0)
首先,您的邮件没有任何格式。实质上,您发送的是纯文本响应。在字符串中使用HTML格式并将其用作htmlBody参数(详细了解here)。
接下来是回复循环。谷歌有一个内置的不在办公室回复系统,他们这样做的方式是有人只有几天得到自动回复。我建议做类似的事情。一旦您的脚本触发,您就可以使用PropertiesService.getUserProperties()
存储电子邮件(详细了解here)。所以基本上你会做
PropertiesService.getUserProperties().setProperty(email, date)
您应该从收到的电子邮件中抓取email
,并且您已经拥有date
。请记住,您可能希望获取所有涉及的电子邮件,并通过相同的消息通知每个人,因此您必须循环浏览这些电子邮件,以便为每封电子邮件创建单独的条目。
因此,您希望在功能开始时尽早收到电子邮件,然后尝试PropertiesService.getUserProperties().getProperty(email)
,如果您设法检索非null
或undefined
属性,则应退出超出return
的功能,因为您已经向他们发送了回复,而您不再需要了。