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

如何用Google Script给Google Sheets批量发送含超链接自动邮件

Google Apps Script 批量读取Sheet发送带超链接邮件方案

原有代码问题定位

  • 第一段代码(可批量发纯文本邮件):调用MailApp.sendEmail时使用纯文本传参模式,未传入htmlBody配置项,邮件客户端无法渲染HTML标签与超链接
  • 第二段代码(可发HTML带超链接邮件):仅通过getRange(lr, 1)读取最后一行的单个邮箱地址,未遍历所有有效数据行,仅能给单个地址发信

整合后可直接运行的代码

function sendBatchHtmlEmails() {
  // 绑定当前表格,无需手动激活工作表
  const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  const emailSheet = spreadSheet.getSheetByName("Emails");
  const templateSheet = spreadSheet.getSheetByName("Template");

  // 一次性读取所有有效行数据,避免逐行调用接口的性能损耗
  const lastRow = emailSheet.getLastRow();
  // 读取A-D列从第2行开始的所有数据:A列邮箱、B列姓名、C列标题、D列表单ID
  const emailDataList = emailSheet.getRange(2, 1, lastRow - 1, 4).getValues();
  // 读取HTML邮件模板,模板内可直接编写<a>标签插入超链接
  const htmlTemplate = templateSheet.getRange(1, 1).getValue();

  // 遍历所有收件人信息发信
  emailDataList.forEach(rowData => {
    const [currentEmail, currentName, currentTitle, sheetId] = rowData;
    // 跳过空邮箱行,避免发信报错
    if (!currentEmail) return;

    // 替换模板占位符
    let htmlBody = htmlTemplate
      .replace("{name}", currentName)
      .replace("{title}", currentTitle)
      .replace("{sheet}", sheetId);
    const emailSubject = `Reminder: ${currentTitle}`;

    // 发送支持超链接的HTML格式邮件
    MailApp.sendEmail({
      to: currentEmail,
      subject: emailSubject,
      htmlBody: htmlBody,
      noReply: true
    });
  });
}

使用说明

  • 「Template」工作表A1单元格的邮件模板支持直接编写HTML内容,超链接使用<a href="目标链接地址">链接显示文本</a>格式编写即可,原有{name}/{title}/{sheet}占位符规则保持不变
  • 若不需要单独维护模板文件,也可以直接把写好的HTML内容赋值给代码里的htmlBody字段,写法和第二段代码的HTML拼接逻辑一致
  • 首次运行脚本时会弹出权限申请窗口,按提示授权脚本访问表格、发送邮件的权限即可正常运行
  • 若需要兼容不支持HTML格式的老旧邮件客户端,可在sendEmail参数中新增plainTextBody字段传入纯文本版本的邮件内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:27:17