Google App 脚本 - 电子邮件正文返回 [对象对象]

问题描述 投票:0回答:1

感谢您打开我的帖子! 我遇到了一个我一整天都在尝试解决的问题,但我无法解决它。

上下文:我已经创建了 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;
      }
}

想要一些帮助来理解我做错了什么。

google-apps-script newsletter
1个回答
0
投票

当你想使用

{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 });
    也可以使用。

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.