感谢您打开我的帖子! 我遇到了一个我一整天都在尝试解决的问题,但我无法解决它。
上下文:我已经创建了 HTML 通讯设计,我需要发送给多个人,该信息将在 excel 上。
我已经成功地创建了循环并发送了测试电子邮件。但是邮件的正文很简单[object Object]。我在代码中放置了一些记录器来检查模板是否正确链接。
任何想法可能是我面临的问题?谢谢!
PD。我对编码很陌生。
function sendEmails(){
const ss= SpreadsheetApp.getActiveSpreadsheet();
const sheet= ss.getActiveSheet();
const sheetValues = sheet.getDataRange().getValues();
const html= HtmlService.createTemplateFromFile('template');
const output = html.evaluate().getContent();
Logger.log(output);
for(let i = 1; i< sheetValues.length; i++){
const row= sheetValues[i];
const senderName = 'TEST EMAIL';
const replyto = '[email protected]';
const cc ='';
const subject = "April's Newsletter";
const firstName=row[1];
const lastName=row[2];
const recipientEmail=row[3];
const emailbody = {htmlBody:output};
Logger.log(emailbody);
const sendEmailtoCostumer=sendEmail(senderName,cc,subject,replyto,recipientEmail,emailbody)
sheet.getRange(i + 1,6,1,1).setValue(sendEmailtoCostumer);
}
}
function sendEmail(senderName,cc,subject,replyto,recipientEmail,emailbody){
try{
MailApp.sendEmail(recipientEmail,subject,emailbody)
const date = Utilities.formatDate(new Date(),'GMT-04:00','MM/dd/yyyy h:mm a');
return 'Newsletter Sent on' + date;
}
catch(error){
return error.message;
}
}
想要一些帮助来理解我做错了什么。
当你想使用
{htmlBody:output}
到MailApp.sendEmail
时,这需要放在第四个参数,如sendEmail(recipient, subject, body, options)
。我认为这可能是您当前问题的原因。那么,在你的脚本中,下面的修改怎么样?
MailApp.sendEmail(recipientEmail,subject,emailbody)
MailApp.sendEmail(recipientEmail, subject, "", emailbody);
通过这个修改,
const emailbody = {htmlBody:output};
被用作第四个参数。
或者,我认为
MailApp.sendEmail({ to: recipientEmail, subject, ...emailbody });
也可以使用。