使用自动脚本发送电子邮件

时间:2021-02-16 21:37:13

标签: google-apps-script google-sheets

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

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);
}

}

1 个答案:

答案 0 :(得分:2)

说明:

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

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

解决方案:

假设有以下工作表:

enter image description here

以下是如何发送基于 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);           
  });     
}

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