Google Sheets邮件发送脚本修改需求:适配动态行等4项功能调整
适配需求的Google Sheets邮件发送脚本
以下脚本已完成全部4项功能调整,可直接运行:
// 已发送标记内容,可自定义 var EMAIL_SENT = 'EMAIL_SENT'; // 已发送标记写入列,默认12对应L列,可自行修改数值 var SENT_MARK_COLUMN = 12; /** * 自动扫描未发送行批量发邮件,支持HTML模板 */ function sendEmails2() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); // 数据处理起始行,已改为第3行 var startRow = 3; // 自动计算有效数据行数,无需手动设置 var numRows = sheet.getLastRow() - startRow + 1; // 读取从A列到标记列的所有数据 var dataRange = sheet.getRange(startRow, 1, numRows, SENT_MARK_COLUMN); var data = dataRange.getValues(); // 读取表头用于模板字段匹配 var headers = sheet.getRange(1, 1, 1, SENT_MARK_COLUMN).getValues()[0]; for (var i = 0; i < data.length; ++i) { var row = data[i]; // 读取当前行已发送标记 var emailSent = row[SENT_MARK_COLUMN - 1]; // 跳过已发送的行 if (emailSent === EMAIL_SENT) continue; // -------------------------- 可自定义配置区域开始 -------------------------- // 收件人邮箱,多个用英文逗号分隔 var emailAddress = "jdoe1@email.net,jdoe2@email.com"; // 邮件主题 var subject = 'Student(s) COMPLETED the Orientation.'; // 邮件HTML模板,用{{表头名}}插入对应列的内容,支持所有HTML语法 var htmlTemplate = ` <div> <p>您好,以下学生已完成 orientation:</p> <ul> <li>姓名:{{Names}} {{Last Names}}</li> </ul> </div> `; // 纯文本备用内容,不支持HTML的邮箱客户端会显示该内容 var plainText = `您好,以下学生已完成 orientation:\n姓名:${row[0]} ${row[1]}`; // -------------------------- 可自定义配置区域结束 -------------------------- // 模板变量替换 var emailHtmlBody = htmlTemplate.replace(/{{(\w+\s*\w*)}}/g, function(match, key) { var colIndex = headers.indexOf(key.trim()); return colIndex >= 0 ? row[colIndex] : match; }); // 发送邮件,同时支持HTML和纯文本 MailApp.sendEmail({ to: emailAddress, subject: subject, body: plainText, htmlBody: emailHtmlBody }); // 写入已发送标记 sheet.getRange(startRow + i, SENT_MARK_COLUMN).setValue(EMAIL_SENT); SpreadsheetApp.flush(); } }
自定义配置说明
- 标记列修改:调整常量
SENT_MARK_COLUMN的数值即可,列号和Google Sheets列顺序对应,比如1对应A列,12对应L列 - 邮件内容修改:在配置区域修改
htmlTemplate即可,使用{{表头名称}}的格式可自动插入当前行对应列的内容,支持所有HTML标签实现排版、插入图片等需求 - 收件人/主题修改:直接修改配置区域的
emailAddress、subject变量即可,多个收件人用英文逗号分隔 - 测试注意:代码内的邮箱为测试用虚拟地址,正式使用前请替换为真实收件人邮箱
内容的提问来源于stack exchange,提问作者Ze Za
相关产品推荐
相关产品推荐

