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

如何在Google Apps Script中实现单函数批量发送带唯一附件的邮件?

解决方案:合并批量发件函数并实现专属附件发送

核心思路

将分散的发件逻辑抽象为通用处理流程:从Reference标签批量读取用户核心数据(邮箱、专属表格链接、特殊用户标识),循环遍历每个用户,根据用户类型生成对应专属附件,最后调用统一的邮件发送方法完成批量操作。

完整实现代码

function sendAllEmails() {
  const activeSs = SpreadsheetApp.getActiveSpreadsheet();
  const referenceSheet = activeSs.getSheetByName('Reference');
  // 读取用户数据:假设表头在第1行,数据从第2行开始,按需调整列索引
  // 示例:A列=邮箱,N列=专属表格链接,O列=特殊用户标记(值为"特殊"时触发双附件逻辑)
  const userList = referenceSheet.getDataRange().getValues().slice(1).filter(row => row[0] && row[13]);

  userList.forEach(row => {
    const targetEmail = row[0];
    const recordSheetUrl = row[13];
    const isSpecial = row[14] === '特殊';

    // 生成专属附件
    let attachments = [];
    const recordSs = SpreadsheetApp.openByUrl(recordSheetUrl);
    
    if (isSpecial) {
      // 特殊用户:附加指定两个工作表为PDF
      const sheetA = recordSs.getSheetByName('月度汇总');
      const sheetB = recordSs.getSheetByName('明细记录');
      attachments.push(
        sheetA.getAs(MimeType.PDF).setName(`${targetEmail}_月度汇总.pdf`),
        sheetB.getAs(MimeType.PDF).setName(`${targetEmail}_明细记录.pdf`)
      );
    } else {
      // 普通用户:附加默认工作表为PDF
      const targetSheet = recordSs.getSheetByName('个人记录');
      attachments.push(targetSheet.getAs(MimeType.PDF).setName(`${targetEmail}_专属记录.pdf`));
    }

    // 发送邮件,自定义主题和内容
    const emailSubject = `你的专属记录已生成`;
    const emailBody = `您好,附件为你的专属记录,请查收。`;
    
    GmailApp.sendEmail(targetEmail, emailSubject, emailBody, {
      attachments: attachments,
      name: '系统管理员'
    });
  });

  SpreadsheetApp.getUi().alert('批量邮件发送完成');
}

// 绑定「Email All」按钮的触发函数
function emailAllButtonTrigger() {
  sendAllEmails();
}

关键适配说明

  • 列索引调整:根据你Reference标签的实际列位置,修改row[0](邮箱)、row[13](专属链接)、row[14](特殊标记)的索引值
  • 工作表名称替换:将代码中月度汇总、明细记录、个人记录替换为你实际的工作表名称
  • 特殊用户判断:如果不用标记列,可改为邮箱匹配逻辑(比如targetEmail.includes('special@xxx.com'))
  • 邮件内容自定义:按需修改emailSubject和emailBody的文本内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 14:47:38