You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Gmail自动回复脚本实现单日仅回复同一发件人一次

改造Gmail自动回复脚本:避免当日重复发送回复

以下是修改后的完整脚本,已集成Properties Service记录当日已发送回复的邮箱地址,确保同一联系人当天不会收到多次自动回复:

function autoReply() {
    var interval = 5; // 脚本运行间隔(分钟),根据实际设置调整
    var wkend = [6, 0]; // 周末:6=周六,0=周日(1=周一,2=周二,3=周三,4=周四,5=周五)
    var wkendMessage = "Hi, Thank you for your email. I will get back to you during the school week. Have a great weekend!\n";
    var wkdayMessage = "Hi! Thank you for your email.  I will get back to you during school hours.\n";
  
    var date = new Date();
    var day = date.getDay();
    var hour = date.getHours();
    var minute = date.getMinutes(); // 修复原脚本未定义minute的问题
    var today = Utilities.formatDate(date, Session.getScriptTimeZone(), "yyyy-MM-dd"); // 获取当日日期字符串作为记录键
  
    // 从Properties Service获取当日已发送回复的邮箱列表
    var sentEmails = UserProperties.getProperty(today) || "";
    var sentEmailsArray = sentEmails.split(",").filter(Boolean); // 转为数组并过滤空值
  
    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++) {
      var thread = threads[i];
      var sender = thread.getMessages()[0].getFrom(); // 获取发件人信息
      var senderEmail = sender.match(/<([^>]+)>/)[1]; // 提取纯邮箱地址(兼容"姓名 <邮箱>"格式)
  
      // 检查当前发件人是否已在当日记录中
      if (!sentEmailsArray.includes(senderEmail)) {
        // 根据时段选择回复消息
        if (wkend.indexOf(day) > -1 || (day == 5 && hour >= 15 && minute >= 30)) {
          thread.reply(wkendMessage);
        } else if (hour < 7 || (hour >= 15 && minute >= 30)) {
          thread.reply(wkdayMessage);
        }
  
        // 将发件人邮箱加入当日记录
        sentEmailsArray.push(senderEmail);
        UserProperties.setProperty(today, sentEmailsArray.join(","));
      }
    }
}

function doGet() {
 return ContentService.createTextOutput("");
}

关键修改说明

  • 修复minute变量未定义问题:原脚本直接使用minute但未声明,添加var minute = date.getMinutes();解决报错。
  • 用Properties Service记录已发邮箱:
    • 生成当日日期字符串(如2024-05-20)作为存储键,确保每天的记录独立,次日自动重置。
    • UserProperties存储用户专属数据,只有你能访问这些记录。
  • 提取纯邮箱地址:通过正则表达式从发件人信息中提取纯邮箱,避免因姓名不同导致重复记录。
  • 发送前检查记录:处理每封邮件前先验证发件人是否已在当日记录中,未记录才发送回复并更新记录。

注意事项

  • 脚本运行间隔需与interval变量保持一致(比如设置每5分钟运行一次,interval就设为5)。
  • Properties Service用户属性总存储量不超过100KB,日常使用完全足够。

内容的提问来源于stack exchange,提问作者Jess I

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 02:30:48