You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google表格Apps Script生成发送QR码邮件函数失效排查求助

问题排查与修复方案

代码语法错误

  • 字符串引号与URL实体错误:qrCodeUrlPrefix变量定义时用了双单引号开头,属于语法错误;同时URL里的&是HTML实体,在JavaScript中应直接用&。
    修复后:
    var qrCodeUrlPrefix = 'https://chart.googleapis.com/chart?cht=qr&chs=150x150&chl=';
    
  • HTML内容换行未拼接:htmlBody的字符串在换行处未正确拼接,会触发语法报错。可通过字符串拼接或模板字符串修复:
    字符串拼接方式:
    htmlBody: 'Hello ' + name + ',<br><br>Thank you for registering. Please find your ' +
    'QR code below.<br><img src="' + qrCodeUrl + '"><br>Best Regards,<br>Event Team'
    
    模板字符串方式(更简洁):
    htmlBody: `Hello ${name},<br><br>Thank you for registering. Please find your 
    QR code below.<br><img src="${qrCodeUrl}"><br>Best Regards,<br>Event Team`
    

触发器与权限问题

  • 权限未授权:首次运行脚本需手动完成邮件发送权限授权,触发器运行时可能因未授权失败。先手动执行sendQrCodeEmails函数,完成授权流程。
  • 触发器配置错误:若为表单提交触发,需确认触发器选择表单提交事件;若为定时触发,要确保触发时机合理,且脚本能获取最新表单数据。
  • 列索引匹配问题:确认表格中姓名在第二列(索引1)、邮箱在第三列(索引2),列位置不匹配会导致无法获取正确的收件人信息,邮件发送失败。

完整修复后的代码

function sendQrCodeEmails() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var qrCodeUrlPrefix = 'https://chart.googleapis.com/chart?cht=qr&chs=150x150&chl=';

  for (var i = 1; i < data.length; i++) {
    var email = data[i][2]; // 第三列为邮箱
    var name = data[i][1]; // 第二列为姓名
    var qrCodeUrl = qrCodeUrlPrefix + encodeURIComponent(email);

    // 发送带二维码的邮件
    MailApp.sendEmail({
      to: email,
      subject: 'Your Event QR Code',
      htmlBody: `Hello ${name},<br><br>Thank you for registering. Please find your 
      QR code below.<br><img src="${qrCodeUrl}"><br>Best Regards,<br>Event Team`
    });
  }
}

内容的提问来源于stack exchange,提问作者Hani Almutlaq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 15:40:13