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

基于Google AppScript的批量邮件模板代码补全与日志开发需求

批量邮件模板补充开发方案(Google Apps Script)

一、添加发件人名称、Reply-To及BCC配置

修改邮件发送函数,通过MailApp.sendEmail的高级选项参数实现字段配置:

function sendEmails() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const dataSheet = ss.getSheetByName("邮件数据"); // 替换为你的数据标签页实际名称
  const logSheet = ss.getSheetByName("Sent Email Log");
  
  const data = dataSheet.getDataRange().getValues();
  
  // 跳过表头,从第二行开始遍历数据
  for (let i = 1; i < data.length; i++) {
    const [recipient, subject, body, senderName, replyTo, bccList] = data[i];
    
    // 邮件配置选项
    const emailOptions = {
      name: senderName,       // 发件人显示名称
      replyTo: replyTo,       // 回复邮箱地址
      bcc: bccList            // 密送收件人(多邮箱用逗号分隔)
    };
    
    // 发送邮件
    MailApp.sendEmail(recipient, subject, body, emailOptions);
    
    // 记录发送日志
    logEmailSend(logSheet, new Date(), recipient, subject);
  }
}

二、实现发送日志记录

新增日志函数,自动将发送信息写入「Sent Email Log」标签页:

function logEmailSend(logSheet, sendTime, recipient, subject) {
  // 初始化表头(若不存在)
  const header = logSheet.getRange(1, 1, 1, 3).getValues()[0];
  if (!header.includes("发送时间")) {
    logSheet.getRange(1, 1, 1, 3).setValues([["发送时间", "收件人邮箱", "邮件主题"]]);
    logSheet.getRange(1, 1, 1, 3).setFontWeight("bold");
  }
  
  // 获取下一个空行并写入数据
  const nextRow = logSheet.getLastRow() + 1;
  logSheet.getRange(nextRow, 1, 1, 3).setValues([[sendTime, recipient, subject]]);
  
  // 格式化时间列
  logSheet.getRange(nextRow, 1).setNumberFormat("yyyy-MM-dd HH:mm:ss");
}

注意事项

  • 确保数据标签页包含对应列:收件人邮箱、邮件主题、邮件内容、发件人名称、Reply-To邮箱、BCC收件人(可根据实际列顺序调整数组解构的顺序)
  • 首次运行脚本时需完成Google权限授权,允许脚本访问表格和发送邮件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 09:36:20