在邮件合并中跳过空白电子邮件

问题描述 投票:0回答:1

这是与此链接类似的问题,但略有不同: 在 Google Apps 脚本邮件合并中跳过空白电子邮件

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

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

   // 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 的文档,该文档按预期工作。 电子邮件部分也有效,只是试图消除我偶尔收到的失败的脚本电子邮件。

javascript google-sheets google-apps-script google-forms
1个回答
0
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.