跳过空白邮件在谷歌应用程序脚本邮件合并



我正在使用这个简单的邮件合并教程来帮助我创建一个邮件合并,以便向学生和他们的家长发送他们完成的社区服务时间的摘要。他们的电子邮件地址在谷歌表格文档中。该脚本将一直工作,直到遇到空白单元格。然后它给了我一个错误,说"无效的电子邮件:未定义",并引用了脚本中使用发送电子邮件命令的行。

我已经在电子表格本身中临时解决了这个问题,让它在任何空白单元格中插入一个虚拟的电子邮件,但我只想把它写进脚本中以忽略空白单元格。

完整的代码在上面的链接。我修改了代码,从表单中的三列而不是一列中提取电子邮件地址。关键位是:

function sendEmails() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getSheets()[0];
  var dataRange = dataSheet.getRange(5, 1, dataSheet.getMaxRows() - 1, 7);
  var templateSheet = ss.getSheets()[1];
  var emailTemplate = templateSheet.getRange("B7").getValue();
  // Create one JavaScript object per row of data.
  objects = getRowsData(dataSheet, dataRange);
  // For every row object, create a personalized email from a template and send
  // it to the appropriate person.
  for (var i = 0; i < objects.length; ++i) {
    // Get a row object
    var rowData = objects[i];
// Generate a personalized email.
// Given a template string, replace markers (for instance ${"First Name"}) with
// the corresponding value in a row object (for instance rowData.firstName).
var emailText = fillInTemplateFromObject(emailTemplate, rowData);
var emailSubject = templateSheet.getRange("B6").getValue();
MailApp.sendEmail(rowData.studentEmail, emailSubject, emailText);
MailApp.sendEmail(rowData.parentaEmail, emailSubject, emailText);
MailApp.sendEmail(rowData.parentbEmail, emailSubject, emailText);
  } 

我需要添加什么来跳过parentaEmail和parentbEmail列中的空白单元格?

有许多方法可以解决您的问题,但一般来说,您只需要一个条件语句,该语句表示'如果单元格不为空,则执行sendMail函数'。

if (rowData.parentaEmail != '') {
  MailApp.sendEmail(rowData.parentaEmail, emailSubject, emailText);
}

好了,我已经让它工作了。谢谢吉尔给我指明了正确的道路。下面是最终的工作:

   if (rowData.parentaEmail != null) {
      MailApp.sendEmail(rowData.parentaEmail, emailSubject, emailText);
   }

然后再做同样的事情但是对于parentbEmail

相关内容

  • 没有找到相关文章

最新更新