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

如何在提交Google表单前获取Google邮箱值?求GAS示例

Google表单提交前校验登录邮箱(黑名单拦截)GAS实现

前置设置

  • 打开目标Google表单,进入「设置」页面,开启收集电子邮件地址(建议选择「要求收集电子邮件地址」,确保能获取到用户登录邮箱)

脚本实现

打开表单的脚本编辑器(右上角「扩展程序」→「Apps Script」),替换默认代码为以下内容:

// 黑名单邮箱列表,可自行添加/修改
const BLACKLIST_EMAILS = ["blacklist1@example.com", "blacklist2@example.com"];

/**
 * 表单提交触发函数,需设置可安装的「表单提交」触发
 * @param {Object} e 表单提交事件对象
 */
function onFormSubmit(e) {
  // 获取提交用户的邮箱
  const respondentEmail = e.response.getRespondentEmail();
  
  // 校验邮箱是否在黑名单中
  if (respondentEmail && BLACKLIST_EMAILS.includes(respondentEmail)) {
    // 删除黑名单用户的提交响应
    e.response.deleteResponse();
    
    // 可选:发送通知给管理员(或提示用户,这里以管理员通知为例)
    const adminEmail = "admin@example.com";
    MailApp.sendEmail({
      to: adminEmail,
      subject: "黑名单用户尝试提交表单",
      body: `用户邮箱:${respondentEmail}\n提交时间:${new Date().toLocaleString()}`
    });
  }
}

配置触发

  1. 在脚本编辑器左侧点击「触发器」图标(时钟样式)
  2. 点击「添加触发器」,配置如下:
    • 选择要运行的函数:onFormSubmit
    • 选择事件源:「表单」
    • 选择事件类型:「表单提交」
  3. 保存并完成授权(首次授权需按提示完成权限验证)

补充说明

  • 如果需要更灵活的黑名单管理,可以将邮箱列表存储在Google表格中,通过SpreadsheetApp读取数据
  • 若表单允许外部用户提交,需确保「收集电子邮件地址」设置为「允许用户选择是否发送」,但此时可能无法获取到部分用户邮箱

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 11:04:57