通过 GmailApp 以 HTML 格式发送电子邮件以保留签名和图像

我有一个项目,我需要批量发送一封电子邮件,其中包含特定于每个用户的文本,以及来自相关 gmail 帐户的签名和图像。我有这个自动取款机:


//get template/draft email & body

const scGmailTemplate = GmailApp.getDraft("r4329894329375089160");

const scGmailTemplateMessage = scGmailTemplate.getMessage();

const scGmailTemplateBody = scGmailTemplateMessage.getBody();


//create new gmail

let scGmailContactMessageBody = scGmailTemplateBody;


//create array for gmail find & replaces [find, replace]

const gmailFindReplace = [["INV_START", scVars.INV_START],

                          ["INV_END", scVars.INV_END],

                          ["DEM_DATE", scVars.DEM_DATE]

                         ];


gmailFindReplace.forEach(x=>{scGmailContactMessageBody=scGmailContactMessageBody.replace(x[0], x[1])});


const scGmailSubject = "Service Charge Invoice ("+scVars.INV_START+"-"+scVars.INV_END+")";


let bodyHtml = HtmlService.createHtmlOutput(scGmailContactMessageBody);//didnt work


GmailApp.sendEmail("me@me.com", "test", scGmailContactMessageBody);

问题是生成的电子邮件只是原始 html,图像显示在底部


我试过添加{htmlBody: html}作为选项,但会引发错误html not defined。


任何帮助将非常感激


忽然笑
浏览 184回答 2
2回答

繁星点点滴滴

需要htmlBody一个字符串。GmailApp.sendEmail("me@me.com", "test", scGmailContactMessageBody, {htmlBody: scGmailContactMessageBody});不需要因为let bodyHtml = HtmlService.createHtmlOutput(scGmailContactMessageBody);已经getBody()返回了一个 HTML 字符串。

慕容森

从问题我尝试添加{htmlBody: html}作为选项,但会引发html未定义的错误。错误信息很直接,代码不包含声明语句html尝试替换html为bodyHtml
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript