首页 > 解决方案 > 使用自动脚本发送电子邮件

问题描述

我正在尝试让 Gsheets 发送到多个电子邮件。它仅从A2&收集信息A3。我该如何解决?

function sendEmail() {

var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet1=ss.getSheetByName('Sheet1');
var n=sheet1.getLastRow();
for (var i = 2; i < n+1 ; i++ ) {
var emailAddress = sheet1.getRange(i,1).getValue();
var subject = sheet1.getRange(i,2).getValue();
var message = sheet1.getRange(i,3).getValue();
MailApp.sendEmail(emailAddress, subject, message);
}

}

标签: google-apps-scriptgoogle-sheets

解决方案


解释:

根据您的问题,我了解您已修复subject并且message您想要遍历电子邮件列表。

  • 您说过A2 & A3,但是在您的电子邮件代码中,您遍历了 A 列,因此将主题和消息放在与电子邮件相同的列中是没有意义的。

解决方案:

假设以下表格:

在此处输入图像描述

以下是如何根据 A 列发送电子邮件,主题和消息分别基于单元格B2B3

function sendEmail() {
  const ss = SpreadsheetApp.getActive()
  const sheet1=ss.getSheetByName('Sheet1');
  const subject = sheet1.getRange('B2').getValue(); // B2
  const message = sheet1.getRange('B3').getValue(); // B3
  const n=sheet1.getLastRow();
  const emails = sheet1.getRange('A2:A'+n).getValues().flat();
  emails.forEach(emailAddress=>{                 
      MailApp.sendEmail(emailAddress, subject, message);           
  });     
}

如果您有不同的数据结构,请告诉我,我会相应地修改答案。


推荐阅读