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

如何在Google Apps Script中为特定邮件模板跳过插入图片

解决Extension模板跳过图片且避免变量未定义的问题

以下是三种可行的解决方法,按需选择:

方案1:提前初始化变量,发送时动态判断是否添加图片

先在分支外部初始化变量保证全局存在,仅在需要图片的分支赋值,发送时根据变量状态决定是否插入图片:

// 提前初始化变量,避免未定义报错
var myimage = null;

if (inputSheet.initialadvice == "Training Visa"){
  var emailtemp = HtmlService.createTemplateFromFile("Training Visa");
  var subject ="[DRAFT] "+inputSheet.engagement+" - HK - "+inputSheet.lastname+", "+inputSheet.firstname+" - Training Visa Application - Initiation";
  myimage = DriveApp.getFolderById('folder id').getFilesByName('training.png').next().getBlob();
} else if (inputSheet.initialadvice == "Extension"){
  var emailtemp = HtmlService.createTemplateFromFile("Extension");
  var subject ="[DRAFT] "+inputSheet.engagement+" - HK - "+inputSheet.lastname+", "+inputSheet.firstname+" - Extension Application - Initiation";
}

// 构建基础邮件配置
var mailOptions = {
  from: alias,
  to: me,
  cc: caseworkeremail,
  htmlBody: emailtemphtml,
  name: "mailbox"
};

// 仅当图片存在时,添加inlineImages配置
if (myimage !== null) {
  mailOptions.inlineImages = { pngimage: myimage };
}

// 发送邮件
MailApp.sendEmail(inputSheet.caseworkerEmail, subject, "", mailOptions);

方案2:分支内独立构建邮件配置

直接在每个分支里定义对应场景的邮件配置,Extension分支不包含inlineImages属性:

var emailtemp, subject, mailOptions;

if (inputSheet.initialadvice == "Training Visa"){
  emailtemp = HtmlService.createTemplateFromFile("Training Visa");
  subject ="[DRAFT] "+inputSheet.engagement+" - HK - "+inputSheet.lastname+", "+inputSheet.firstname+" - Training Visa Application - Initiation";
  var myimage = DriveApp.getFolderById('folder id').getFilesByName('training.png').next().getBlob();
  
  mailOptions = {
    from: alias,
    to: me,
    cc: caseworkeremail,
    htmlBody: emailtemphtml,
    inlineImages: { pngimage: myimage },
    name: "mailbox"
  };
} else if (inputSheet.initialadvice == "Extension"){
  emailtemp = HtmlService.createTemplateFromFile("Extension");
  subject ="[DRAFT] "+inputSheet.engagement+" - HK - "+inputSheet.lastname+", "+inputSheet.firstname+" - Extension Application - Initiation";
  
  mailOptions = {
    from: alias,
    to: me,
    cc: caseworkeremail,
    htmlBody: emailtemphtml,
    name: "mailbox"
  };
}

// 发送邮件
MailApp.sendEmail(inputSheet.caseworkerEmail, subject, "", mailOptions);

方案3:给Extension分支赋值空占位Blob

如果不想修改邮件配置结构,可以给Extension分支的myimage赋值空图片Blob,保证变量存在的同时不会插入有效图片:

var emailtemp, subject, myimage;

if (inputSheet.initialadvice == "Training Visa"){
  emailtemp = HtmlService.createTemplateFromFile("Training Visa");
  subject ="[DRAFT] "+inputSheet.engagement+" - HK - "+inputSheet.lastname+", "+inputSheet.firstname+" - Training Visa Application - Initiation";
  myimage = DriveApp.getFolderById('folder id').getFilesByName('training.png').next().getBlob();
} else if (inputSheet.initialadvice == "Extension"){
  emailtemp = HtmlService.createTemplateFromFile("Extension");
  subject ="[DRAFT] "+inputSheet.engagement+" - HK - "+inputSheet.lastname+", "+inputSheet.firstname+" - Extension Application - Initiation";
  // 赋值空Blob,避免变量未定义
  myimage = Utilities.newBlob('', 'image/png');
}

// 发送邮件
MailApp.sendEmail(
  inputSheet.caseworkerEmail,
  subject,
  "",
  {
    from: alias,
    to: me,
    cc: caseworkeremail,
    htmlBody: emailtemphtml,
    inlineImages: { pngimage: myimage },
    name: "mailbox"
  }
);

内容的提问来源于stack exchange,提问作者WN Legacy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:03:29