您可以在Google Apps脚本中将htmlBody和body与gmailApp一起使用吗

时间:2018-08-01 13:46:46

标签: html google-apps-script gmail textarea

我有一个带有文本区域的HTML表单,其中包含默认消息,用户可以对其进行编辑。 HTML如下:

       收件人:电子邮件地址       >

 </div>

 <div class="form-group" id="ccInput">
     <label for="ccAddress"><i class="fa fa-envelope" aria-hidden="true"></i> Cc: Email address</label>
         <input type="text" data-role="tagsinput" multiple="multiple" name="ccAddress" class="form-control" id="ccAddress" aria-describedby="emailHelp" value=<?=ccEmail?>>
 </div>

 <div class="form-group">
    <label for="subject"><i class="fa fa-info-circle" aria-hidden="true"></i> Subject</label>
    <input type="input" name="subject" class="form-control" id="subject" value=<?=mailSubject?>>
 </div>

 <div class="form-group">
    <label for="subject"><i class="fa fa-pencil" aria-hidden="true"></i> Message</label>
 <div id="blankInput"></div>

   <textarea class="form-control" rows="12" id="text" name="message">Dear <?= firstName ?> <?= surName ?>,

<?= mailBody ?>

Kind regards,


<?= contractorName ?>


<?= contractorTitle ?></textarea>

 </div>

 <div class="form-group" id="pdfForm">

 <label for="pdfUrl"><i class="fa fa-paperclip" aria-hidden="true"></i> PDF Attachment</label>
 <input type="url" name="pdfUrl" class="form-control" id="pdfUrl" value=<?=pdfUrl?>>
 </div>

 </div>

 <button type="submit" class="btn btn-primary googleGreen" id="load" data-loading-text="<i class='fa fa-spinner fa-spin'></i> Sending">Send Email</button>
  <button type="button" class="btn btn-primary googleGray" onClick="google.script.host.close()">Cancel</button>

 <input type="hidden" name="process" value=<?= process ?>>   
 <input type="hidden" name="fromEmail" value=<?= fromEmail ?>>   
            </form>
        </div>
    </div>

然后,我使用以下脚本在.gs文件中发送电子邮件:

  var toEmail = form.toAddress;  
  var ccEmail = form.ccAddress;  
  var fromEmail = form.fromEmail;
  var subject = form.subject;
  var message = form.message;
  var sender = form.contractorName; 


    GmailApp.sendEmail(
      toEmail,
      subject,
      message,
      {
      attachments:[pdfFile],
      cc: ccEmail,
      from: fromEmail,
      name: sender
      });

}

这一切都很好,但是textarea的问题是显然不能处理HTML。我想添加一个包含几种样式和徽标等的电子邮件签名,但是据我所知,唯一的方法是使用htmlBody高级选项。但是那我就不能使用文本区域了!

有没有一种方法可以组合这两个元素,以便我可以在正文的末尾添加一些包含签名的HTML?

1 个答案:

答案 0 :(得分:2)

没有诸如“底部带有HTML签名的纯文本电子邮件”之类的东西。收件人将看到HTML或纯文本后备。如果消息的一部分需要HTML,则整个消息必须使用HTML。

message = message.replace(/&/g, '&amp;')
                 .replace(/"/g, '&quot;')
                 .replace(/'/g, '&#39;')
                 .replace(/</g, '&lt;')
                 .replace(/>/g, '&gt;')
                 .replace(/\n/g, "<br>") 
                 + HtmlSignature

可以避免纯文本字符在HTML中具有特殊含义的一些常见问题,为新的换行字符插入HTML分隔符,并附加签名。

另请参阅HTML-encoding lost when attribute read from input field