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

如何获取设置为任何人可访问的Google Web App脚本创建者邮箱

问题根因

当Google Web App的访问权限设置为「任何人,甚至未登录Google的用户」时,Google出于隐私保护策略限制了Session.getActiveUser().getEmail()接口的返回,匿名访问场景下会拿到空值,无法直接通过该接口获取脚本创建者的邮箱。

最优解决方案(100%准确,无依赖)

你只需要固定获取脚本创建者的邮箱,完全不需要依赖Gmail邮件统计,直接通过以下两种方式实现即可:

方案1:硬编码邮箱(最简单)

如果是你自己用的脚本,直接把创建者邮箱写死在代码里即可,部署后不管谁访问都能拿到正确值:

// 直接替换为你自己的邮箱
const CREATOR_EMAIL = "xxx@gmail.com";

function doGet(){
  // 这里直接调用GmailApp就可以访问创建者的邮箱,只要部署时执行身份选的是你
  return ContentService.createTextOutput("创建者邮箱是:" + CREATOR_EMAIL);
}

方案2:脚本属性存储(适合通用脚本场景)

如果脚本需要通用,不想硬编码邮箱,可以先跑一次初始化函数把创建者邮箱写入脚本属性,之后直接读取即可:

  1. 先在脚本编辑器里单独运行一次初始化函数(只有脚本所有者有权限运行,运行时会请求权限,同意即可):
// 仅需运行一次,后续不需要再调用
function initCreatorEmail() {
  const creatorMail = Session.getActiveUser().getEmail();
  PropertiesService.getScriptProperties().setProperty("CREATOR_MAIL", creatorMail);
}
  1. 之后在Web App逻辑里直接读取属性:
function getCreatorEmail() {
  return PropertiesService.getScriptProperties().getProperty("CREATOR_MAIL");
}

function doGet() {
  const creatorMail = getCreatorEmail();
  // 你的Gmail访问逻辑写在这里即可,执行身份为创建者时默认访问创建者的Gmail
  return ContentService.createTextOutput("创建者邮箱是:" + creatorMail);
}

部署注意事项

部署Web App时,执行身份必须选择「我(你的邮箱地址)」,访问权限选择「任何人,甚至匿名用户」,即可实现匿名用户访问时,脚本依旧以创建者身份运行、正常访问创建者的Gmail,同时稳定拿到创建者的邮箱地址。

你之前使用的统计邮件收件人的方案存在误差风险,比如前10封邮件收件人多为别名、转发地址时会返回错误结果,上述方案完全规避了这个问题,也不需要额外调用Gmail接口统计,性能更稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:24:06