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

如何通过Apps Script实现共享/委托Gmail收件箱数据导出到Google Sheet

Gmail导出脚本适配委托/共享收件箱方案

问题答复

  • 完全可以在现有脚本基础上实现委托/共享Gmail收件箱的访问,代码改动量极小
  • 不需要自行适配OAuth 2.0流程,Google Apps Script的默认授权机制已经基于OAuth 2.0,只要你当前登录的账号本身有目标收件箱的访问权限即可正常调用

前置配置要求

你使用的Google账号必须已经被添加为目标委托/共享Gmail的授权访问用户,可直接通过网页端Gmail右上角的账号切换功能进入该收件箱、正常查看邮件内容,这是脚本运行的必要前提。

代码修改方案

你可以在原有表格中新增一行用于填写委托邮箱地址,比如将C4单元格设为委托邮箱输入位,不填则默认读取当前登录账号的收件箱,修改后的完整代码如下:

// 谷歌表格创建功能菜单
var ui = SpreadsheetApp.getUi();

function onOpen(e) {
  ui.createMenu("Gmail Manager")
    .addItem("按标签获取邮件", "getGmailEmails")
    .addToUi();
}

// 支持读取委托/共享收件箱的邮件导出逻辑
function getGmailEmails() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var label = sheet.getRange(1, 3).getValue();
  var after = sheet.getRange(2, 3).getDisplayValue();
  var before = sheet.getRange(3, 3).getDisplayValue();
  var delegateEmail = sheet.getRange(4, 3).getValue();

  // 拼接搜索条件,存在委托邮箱则增加归属过滤
  var searchQuery = "label:" + label + " AND after:" + after + " AND before:" + before;
  if (delegateEmail && delegateEmail.includes('@')) {
    searchQuery += " AND owner:" + delegateEmail;
  }
  var threads = GmailApp.search(searchQuery);

  // 导出邮件内容到表格
  var values = [];
  for (var i = 0; i < threads.length; i++) {
    var temp = [];
    var threadLabels = threads[i].getLabels().map(e => e.getName()).join(",");
    let messages = threads[i].getMessages();
    for (var j = 0; j < messages.length; j++) {
      temp.push([
        threadLabels,
        messages[j].getFrom(),
        messages[j].getFrom().replace(/^.*<([^>]+)>$/, "$1"),
        messages[j].getDate(),
        messages[j].getSubject(),
        messages[j].getPlainBody()
      ]);
    }
    values = values.concat(temp);
  }
  if (values.length > 0) {
    sheet.getRange(6, 1, values.length, values[0].length).setValues(values);
  } else {
    ui.alert("未匹配到符合条件的邮件");
  }
}

注意事项

  • 如果不需要按标签过滤,直接删除搜索条件中的label:相关内容即可
  • 若运行时报权限错误,可先确认当前账号是否能在网页端正常访问委托邮箱,Workspace用户可联系管理员确认是否开放了Gmail API的第三方访问权限
  • 共享邮箱的自定义标签需要设置为对委托用户可见,否则无法搜索到对应标签下的邮件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:48:02