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

Google表格点击单元格调用全权限脚本发送订单邮件的实现方法

解决Google表格单行手动触发订单邮件的方案

最优方案:HYPERLINK配合Google Script调用

可以通过HYPERLINK生成可点击的单元格,触发有权限的邮件发送函数,步骤如下:

1. 编写邮件发送脚本

打开表格的脚本编辑器,添加以下代码:

// 发送订单邮件的核心函数,接收行号参数
function sendOrderMail(rowNum) {
  // 避免行号越界,可根据实际表头行调整(比如表头在第1行,数据从第2行开始)
  if (rowNum < 2) return;
  
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const rowData = sheet.getRange(rowNum, 1, 1, sheet.getLastColumn()).getValues()[0];
  
  // 这里根据你的表格列结构,提取订单信息,示例如下:
  const recipient = rowData[1]; // 假设第2列是收件邮箱
  const orderNum = rowData[0]; // 第1列是订单号
  const product = rowData[2]; // 第3列是商品名称
  
  // 构建邮件内容
  const subject = `订单确认:${orderNum}`;
  const body = `您好,您的订单 ${orderNum}(商品:${product})已处理完成,详情请查看后续通知。`;
  
  // 发送邮件(可添加附件等参数,根据需求调整)
  MailApp.sendEmail(recipient, subject, body);
  
  // 可选:发送后标记该行状态,比如在第4列写入"已发送"
  sheet.getRange(rowNum, 4).setValue("已发送");
}

// 用于首次授权的函数(必须手动运行一次获取权限)
function authorizeScript() {
  // 执行简单操作触发授权流程
  SpreadsheetApp.getActiveSpreadsheet().getRange(1,1).getValue();
}

2. 在表格中添加触发链接

在需要显示“发送邮件”按钮的列(比如第5列),输入公式:

=HYPERLINK("javascript:google.script.run.withSuccessHandler(() => {alert('邮件发送成功')}).sendOrderMail("&ROW()&")", "发送订单邮件")

将公式下拉到所有数据行,每行都会生成一个专属的点击链接。

3. 首次授权

点击表格顶部的「扩展程序」→「Apps Script」,打开脚本编辑器后点击运行按钮执行authorizeScript函数,按照提示完成权限授权(需允许脚本访问邮件和表格数据)。

之后回到表格,点击任意一行的「发送订单邮件」链接,即可触发对应行的邮件发送——此方式无权限限制,因为是用户主动点击触发的授权上下文操作。

备选方案:复选框+自定义菜单(处理多行)

如果需要批量处理,可采用复选框配合自定义菜单:

  • 在表格首列添加复选框,标记需要发送邮件的行
  • 在脚本中添加菜单函数:
function onOpen() {
  SpreadsheetApp.getUi().createMenu("订单操作")
    .addItem("发送选中订单邮件", "sendSelectedOrders")
    .addToUi();
}

function sendSelectedOrders() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const dataRange = sheet.getDataRange();
  const data = dataRange.getValues();
  
  for (let i = 1; i < data.length; i++) { // 跳过表头行
    if (data[i][0] === true) {
      sendOrderMail(i+1); // 调用之前的sendOrderMail函数,行号为i+1(数组从0开始)
      // 可选:取消复选框选中状态
      sheet.getRange(i+1, 1).setValue(false);
    }
  }
}

打开表格时会自动生成「订单操作」菜单,勾选复选框后点击菜单选项即可批量发送。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 03:03:32