修改Google Apps Script:将邮件发送至Google Sheets E列邮箱
解决方案:修改Google Apps Script以动态获取E列邮箱作为收件人
只需对原脚本做两处关键调整即可实现需求:
- 替换固定收件人为E列值:原脚本中
SendTo是硬编码的固定邮箱,将其改为读取当前行的E列数据(数组索引为r[4],因为Google Sheets列从A开始对应数组索引0) - 增加空邮箱校验:避免因E列无有效邮箱导致脚本执行报错
修改后的完整代码如下:
function sendemail() { const ss = SpreadsheetApp.getActive(); const sh = ss.getActiveSheet(); const sr = 2; const rg = sh.getRange(sr, 1, sh.getLastRow() - sr + 1, 6); const vs = rg.getValues(); vs.forEach((r, i) => { let Subject = "New Content on IG.com"; let message = "<p><b>Title: </b>" + r[0] + "</p>" + "<p><b>Article: </b>" + r[1] + "</p>"; let EmailSent = r[5]; let SendTo = r[4]; // 修改为读取当前行E列邮箱 // 新增校验:仅当邮箱存在且未发送时执行 if (EmailSent != "Yes" && SendTo && SendTo.includes('@')) { sh.getRange(i + sr, 6).setValue("Yes"); MailApp.sendEmail({to: SendTo,cc: "",subject: Subject,htmlBody: message}); } }) }
修改说明
let SendTo = r[4]:直接获取当前行E列的邮箱地址,实现动态收件人- 新增
SendTo && SendTo.includes('@')判断:确保邮箱不为空且格式基本有效,防止无效邮箱导致邮件发送失败或脚本报错
内容的提问来源于stack exchange,提问作者Mark Leach
相关产品推荐
相关产品推荐

