我有一个自动回复脚本来回复我收到的电子邮件,附带一个文件。
var file = DriveApp.getFileById('file_id').getAs('application/pdf')
function reply() {
var label = GmailApp.getUserLabelByName('new-mail');
var messages = label.getThreads();
for (let mess of messages) {
if (mess.getMessageCount() == 1) {
mess.reply('attached',{
attachments:[file]
});
mess.removeLabel(label);
}
else mess.removeLabel(label)
}
}现在,我只想一天回复发件人一次,这意味着它不会发送自动回复消息给今天已经收到它的发件人,我该怎么做呢?
发布于 2021-07-20 16:45:25
您可以使用物业事务处保存您已经回复的所有电子邮件地址。
样本代码:
function initializeLogs(){
//Get Script properties
var scriptProperties = PropertiesService.getScriptProperties();
scriptProperties.setProperty('email','');
}
function reply() {
//Get Script properties
var scriptProperties = PropertiesService.getScriptProperties();
var emailLogs = scriptProperties.getProperty('email');
Logger.log(emailLogs);
var label = GmailApp.getUserLabelByName('new-mail');
var messages = label.getThreads();
for (let mess of messages) {
if (mess.getMessageCount() == 1) {
//get email address of the message sender
var sender = mess.getMessages()[0].getFrom();
if(!emailLogs.includes(sender)){
Logger.log(sender);
//sender not yet in the logs, send reply
mess.reply('attached',{
attachments:[file]
});
mess.removeLabel(label);
//add sender to the logs
scriptProperties.setProperty('email', emailLogs+sender)
}
}
else mess.removeLabel(label)
}
}先决条件:
initializeLogs()一次以空字符串初始化email键。initializeLogs()打电话(目的是每天重置回复邮件的列表)。


它能做什么?
initializeLogs()将使用setProperty(键,值)创建一个值为空字符串''的email键。reply()。首先使用getProperty(key)获取当前电子邮件日志https://stackoverflow.com/questions/68456318
复制相似问题