首页 > 解决方案 > 从 Google Script 问题生成 HTML 邮件

问题描述

我有一个奇怪的问题让我大吃一惊,我有一个 GAS,它使用 MaillApp 服务从电子表格值发送 HTML 电子邮件,我有两封构造完全相同的邮件,但 HTML 电子邮件的发送方式不同:

1-这个工作正常:

if(dataArray[row][mailObj['Creation Checkbox']] == "TRUE" && dataArray[row][mailObj['Creation Mail']] == ""){
        var template = HtmlService.createTemplateFromFile('creationMail');
        template.url = ss.getUrl() + "#gid=" + sheet.getSheetId();
        template.mailObj = mailObj;
        template.dataArray = dataArray[row];
        template.inputArray = inputArray[0];
        var msg = template.evaluate().getContent();
        var subject = `[New Task] ${dataArray[row][mailObj['Task Serial']]} @ ${dataArray[row][mailObj['Recorded Date']]} - ${dataArray[row][mailObj['Task Name']]} from ${dataArray[row][mailObj['Owner']]}`;

        MailApp.sendEmail({
          to: dataArray[row][mailObj['Responsible Email']],
          cc: dataArray[row][mailObj['Owner Email']] + "," + dataArray[row][mailObj['Accountable Email']],
          subject: subject,
          htmlBody: msg,
        })
}
 <ul>
      <li> <b> Task Serial: </b> <?= dataArray[mailObj['Task Serial']] ?> </li>
      <? inputArray.forEach(input => { 
        if(dataArray[mailObj[input]] != ""){?>
      <li> <b><?= input ?>:</b> <?= dataArray[mailObj[input]] ?>. </li>
      <? }}); ?>
      <li> <b>Recorded Date: </b> <?= dataArray[mailObj['Recorded Date']] ?> </li>
      <li> <b>Expected Date: </b> <?= dataArray[mailObj['Expected Date']] ?> </li>
    </ul>

在此处输入图像描述


2-这个不起作用:

else if(dataArray[row][mailObj['Submission Checkbox']] == "TRUE" && dataArray[row][mailObj['Submission Mail']] == ""){
        var template = HtmlService.createTemplateFromFile('submissionMail');
        template.url = ss.getUrl() + "#gid=" + sheet.getSheetId();
        template.mailObj = mailObj;
        template.dataArray = dataArray[row];
        template.outputArray = outputArray[0];
        var msg = template.evaluate().getContent();
        var subject = `[New Submission] ${dataArray[row][mailObj['Task Serial']]} @ ${dataArray[row][mailObj['Submission Date']]} - ${dataArray[row][mailObj['Task Name']]} from ${dataArray[row][mailObj['Responsible']]}`;

        
        MailApp.sendEmail({
          to: dataArray[row][mailObj['Owner Email']],
          cc: dataArray[row][mailObj['Accountable Email']],
          subject: subject,
          htmlBody: msg,
        })
}
<ul>
      <? outputArray.forEach(output => { 
        if(dataArray[mailObj[output]] != ""){?>
      <li> <b><?= output ?>:</b> <?= dataArray[mailObj[output]] ?>. </li>
      <? }}); ?>
      <li> <b>Submission Date: </b> <?= dataArray[mailObj['Submission Date']] ?> </li>
      <li> <b>Expected Date: </b> <?= dataArray[mailObj['Expected Date']] ?> </li>
    </ul>

在此处输入图像描述


注意outputArray是正确的,没有错误。

标签: javascripthtmlgoogle-apps-scriptgoogle-sheets

解决方案


推荐阅读