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

如何基于Gmail邮件自动更新或新增数据到Google Sheets

实现Gmail关联数据自动同步到Google Sheets的方案

核心通过Google Sheets内置的Apps Script实现,无需第三方工具,操作步骤如下:

步骤1:打开绑定的脚本编辑器

  • 打开你的目标Google Sheets表格
  • 点击顶部菜单栏「扩展程序」-「Apps Script」,进入脚本编辑页面,删除默认的myFunction模板代码

步骤2:粘贴同步脚本

将下方代码粘贴到编辑器中,可根据实际情况修改开头的配置参数:

function syncGmailToSheets() {
  // 可修改的配置项
  const SHEET_NAME = "Sheet1"; // 替换为你自己的工作表名称
  const HEADER_ROW = 1; // 表头所在的行数,默认第一行是*Name、*Email、*Gmail Label表头
  const MAX_THREADS_PER_LABEL = 100; // 每个标签最多同步最近多少封邮件,最大可设为500

  // 获取工作表已有数据,用于去重
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
  const existingData = sheet.getDataRange().getValues();
  const existingEmails = existingData.slice(HEADER_ROW)
    .map(row => row[1]?.toString().trim())
    .filter(email => email); // 取第二列Email作为去重依据

  const newRows = [];
  // 获取Gmail所有自定义标签
  const gmailLabels = GmailApp.getUserLabels();

  gmailLabels.forEach(label => {
    // 获取当前标签下的邮件线程
    const threads = label.getThreads(0, MAX_THREADS_PER_LABEL);
    threads.forEach(thread => {
      const messages = thread.getMessages();
      messages.forEach(msg => {
        // 提取发件人名称和邮箱,如需同步收件人可把getFrom()改为getTo()
        const fromInfo = msg.getFrom();
        const nameMatch = fromInfo.match(/^(.*?)\s*</);
        const emailMatch = fromInfo.match(/<(.*?)>/);
        const senderName = nameMatch ? nameMatch[1].trim() : fromInfo;
        const senderEmail = emailMatch ? emailMatch[1].trim() : fromInfo;

        // 跳过已存在的邮箱,避免重复写入
        if (senderEmail && !existingEmails.includes(senderEmail)) {
          newRows.push([senderName, senderEmail, label.getName()]);
          existingEmails.push(senderEmail);
        }
      })
    })
  })

  // 把新数据写入表格末尾
  if (newRows.length > 0) {
    sheet.getRange(existingData.length + 1, 1, newRows.length, 3).setValues(newRows);
  }
}

步骤3:首次运行授权

  • 点击脚本编辑器顶部的「运行」按钮,第一次触发会要求账号授权
  • 遇到「Google未验证应用」提示时,点击「高级」-「前往[你的项目名]」完成授权即可,脚本为你本人编写,无安全风险
  • 运行完成后返回Google Sheets即可看到同步的数据

步骤4:设置自动同步

如果不需要手动运行,可设置定时触发自动更新:

  • 点击脚本编辑器左侧的「触发器」(闹钟样式图标)
  • 点击右下角「添加触发器」
  • 选择触发函数为syncGmailToSheets,触发类型选「时间驱动」,按需求设置同步频率(每小时、每天等)即可

注意事项

  • 如果只需要同步特定Gmail标签的邮件,可在GmailApp.getUserLabels()后加过滤规则,比如只保留名称包含「客户」的标签
  • 脚本默认保留已有数据仅新增条目,如需覆盖旧数据可删除去重判断的相关逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:54:03