这是与此链接类似的问题,但略有不同: 在 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 的文档,该文档按预期工作。 电子邮件部分也有效,只是试图消除我偶尔收到的失败的脚本电子邮件。
首先假设传递了 12 个项目(0 到 11),并且电子邮件是最后传递的项目。 如果是这种情况,则测试该项目是否定义为:
if(typeof e.values[11] !== 'undefined')
如果您正在使用链接到的帖子中链接的邮件合并教程,并使用 getRowsData() 函数来获取表单响应,则您应该能够使用包含电子邮件地址(例如 e)的列的标题。 value.emailAddress 并获取:
if(typeof e.values.emailAddress !== 'undefined')
这可能会根据您的数据定义方式而有所不同。