0

我正在使用这个简单的邮件合并教程来帮助我创建邮件合并,以向学生及其家长发送他们完成的社区服务时间的摘要。他们的电子邮件地址位于 Google 表格文档中。该脚本一直有效,直到它遇到一个空白单元格。然后它给了我一个错误,上面写着“无效的电子邮件:未定义”,并引用了带有发送电子邮件命令的脚本中的行。

我已经在电子表格本身中暂时解决了这个问题,方法是将虚拟电子邮件插入任何空白单元格,但我只想将其写入脚本以忽略空白单元格。

完整的代码在上面的链接中。我已修改该代码以从工作表中的三列电子邮件地址而不是一列中提取。关键是这样的:

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 列中的空白单元格?

4

2 回答 2

0

好的,我现在可以正常工作了。感谢 rGil 让我走上了正确的道路。这是最终的工作:

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

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

于 2014-05-28T01:30:15.447 回答
0

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

if (rowData.parentaEmail != '') {
  MailApp.sendEmail(rowData.parentaEmail, emailSubject, emailText);
}
于 2014-05-25T23:55:02.103 回答