Google表格/表格 - 跳过空白电子邮件谷歌脚本

时间:2017-02-02 17:43:36

标签: google-sheets google-form

这是与此链接类似的问题,但略有不同: Skipping blank emails in Google Apps Script Mail Merge

我设置了一个表单/表单,当用户填写表单时,它会生成一个收据电子邮件(不包含某些收据所做的表单内容),然后发送给收件人。但是,当用户将此字段留空时,我会收到表单触发器错误,这可以理解为什么脚本没有完成。我试图找出当收件人/电子邮件字段为空时如何防止脚本尝试发送电子邮件。不幸的是,在表单上填写所需的电子邮件字段不是一个选项,因为奇怪的是,不是每个人都有一个电子邮件地址(如果这是一个选项我肯定只需要输入一个电子邮件地址)。

我已根据上面提供的链接尝试了以下代码段。

   // Send Email to recipient(s) declared above in @var sendEmail
   if (e.values[11] != null) { 

var sendEmail = e.values[11]; //email field column 
var subject = "subject message";
var body = "body message";

MailApp.sendEmail(sendEmail, subject, body, {
  name: "Community Home Health Care",
  body: body,
  noReply: true,           
})

我也试过而不是

       (e.values[11] != null)
使用

       (e.values[11] != "")

我省略的其余代码(超出我所显示的内容)只是采用表单字段响应并生成转换为PDF的文档,该文档按预期工作。电子邮件部分也有效,只是试图消除我偶尔会收到的失败的脚本电子邮件。

由于

1 个答案:

答案 0 :(得分:0)

首先假设传递了12个项目(0到11),并且电子邮件是要传递的最后一个项目。如果是这种情况,那么测试项目是否定义为:

if(typeof e.values[11] !== 'undefined')

如果您使用链接到的链接的邮件合并教程,并使用getRowsData()函数获取表单响应,您应该能够使用包含电子邮件地址的列的标题,例如e.values.emailAddress和get:

if(typeof e.values.emailAddress  !== 'undefined')

根据数据的定义方式,这可能会有所不同。