首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gmail自动回复脚本-如何停止多个回复?

Gmail自动回复脚本-如何停止多个回复?
EN

Stack Overflow用户
提问于 2021-07-20 14:07:46
回答 1查看 247关注 0票数 0

我有一个自动回复脚本来回复我收到的电子邮件,附带一个文件。

代码语言:javascript
复制
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)
      }
}

现在,我只想一天回复发件人一次,这意味着它不会发送自动回复消息给今天已经收到它的发件人,我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-20 16:45:25

您可以使用物业事务处保存您已经回复的所有电子邮件地址。

样本代码:

代码语言:javascript
复制
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)
  }
}

先决条件:

  1. 运行initializeLogs()一次以空字符串初始化email键。
  2. 创建一个时间驱动触发器,每天给initializeLogs()打电话(目的是每天重置回复邮件的列表)。

它能做什么?

  1. 如前所述,initializeLogs()将使用setProperty(键,值)创建一个值为空字符串''email键。
  2. 为了reply()。首先使用getProperty(key)获取当前电子邮件日志
  3. 让电子邮件的发件人
  4. 使用string.includes()检查发件人是否已经存在于电子邮件日志字符串中。如果存在用户,请不要发送答复。
  5. 如果用户不存在,发送回复并将当前发件人的电子邮件地址附加到电子邮件日志中。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68456318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档