【问题标题】:Skipping blank emails in Google Apps Script Mail Merge在 Google Apps 脚本邮件合并中跳过空白电子邮件
【发布时间】:2014-05-28 09:30:15
【问题描述】:

我正在使用这个Simple Mail Merge Tutorial 来帮助我创建邮件合并,以便向学生及其家长发送他们完成的社区服务时间的摘要。他们的电子邮件地址位于 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 列中的空白单元格?

【问题讨论】:

    标签: google-apps-script mailmerge isnullorempty


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      好的,我现在已经开始工作了。感谢 rGil 让我走上了正确的道路。最终效果如下:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-15
        • 2018-11-27
        • 2020-12-15
        • 2011-12-14
        • 2021-06-08
        • 2021-11-21
        • 2017-02-04
        • 1970-01-01
        相关资源
        最近更新 更多