Javascript 谷歌应用程序脚本删除自动电子邮件中的html标记

Javascript 谷歌应用程序脚本删除自动电子邮件中的html标记,javascript,google-apps-script,Javascript,Google Apps Script,我再次需要帮助 我有这个剧本: function doGet() { return HtmlService.createHtmlOutputFromFile('calendarApp').setTitle('CalendarApp'); } function mailOne() { var date = new Date(); var day = date.getDay(); var firstDay = new Date(date.getFullYear(), date.ge

我再次需要帮助

我有这个剧本:

function doGet() {
  return HtmlService.createHtmlOutputFromFile('calendarApp').setTitle('CalendarApp');
}

function mailOne() {
  var date = new Date();
  var day = date.getDay();
  var firstDay = new Date(date.getFullYear(), date.getMonth(), date.getDate()-day+1);
  var lastDay = new Date(date.getFullYear(), date.getMonth(), date.getDate()-day+8);
  var events2 = CalendarApp.getCalendarById('myemail@gmail.com').getEvents(firstDay, lastDay);

  var data2 = [];
  data2.push("<b>Title</b>");
  if (events2 && events2.length > 0) {
    for (i = 0; i < events2.length; i++) {
      data2.push(Utilities.formatDate(events2[i].getStartTime(),Session.getScriptTimeZone(),"EEEE dd/MM")+ ' ' + Utilities.formatDate(events2[i].getStartTime(),Session.getScriptTimeZone(),"HH:mm") +'<br />'+events2[i].getTitle())
    }

 return data2;
  } else {
    return ['Niks te doen!'];
  }
}

function mailTwo() {


  var date = new Date();
  var day = date.getDay();
  var firstDay = new Date(date.getFullYear(), date.getMonth(), date.getDate()-day+1);
  var lastDay = new Date(date.getFullYear(), date.getMonth(), date.getDate()-day+8);
  var events3 = CalendarApp.getCalendarById('myemail2@gmail.com').getEvents(firstDay, lastDay);

  var data2 = [];
  data2.push("<b>Title</b>");
  if (events3 && events3.length > 0) {
    for (i = 0; i < events3.length; i++) {
      data2.push(Utilities.formatDate(events3[i].getStartTime(),Session.getScriptTimeZone(),"EEEE dd/MM")+ ' ' + Utilities.formatDate(events3[i].getStartTime(),Session.getScriptTimeZone(),"HH:mm") +'<br />'+events3[i].getTitle())
    }

    return data2;
  } else {
    return ['Niks te doen!'];
  }
}

function sendMail(){
 var mail1 = mailOne();
 var mail2 = mailTwo();
 var emailAddress = "myemail@gmail.com";
 var subject = "Je weekplanning";
 var defMessage = mail1 + mail2;


  MailApp.sendEmail(emailAddress, subject, defMessage, {
       name: "Automatisch gegenereerd"
});

}
但这给了我一个错误TypeError:在对象中找不到函数getTextFromHtml

Html替换也不起作用:

html.replace(/<[^>]+>/g, "")
html.replace(/]+>/g,”)
我想指出解决这个问题的正确方向

  • 您希望通过将HTML数据转换为文本数据,以文本形式发送电子邮件
  • 您希望通过呈现HTML数据以HTML格式发送电子邮件
  • 如果我的理解是正确的,那么这个答案呢?请把这看作是几个答案中的一个

    模式1: 在此模式中,HTML数据被转换为文本数据并发送。为了转换为文本数据,在本例中,HTML数据使用驱动API转换为Google文档

    修改脚本: 修改脚本时,请按以下方式修改。在运行脚本之前

    发件人: 致: 模式2: 在此模式中,HTML数据作为HTML正文发送。在脚本中,
    MailApp.sendmail的
    defMessage
    (emailAddress,subject,defMessage,{name:“automaticsch gegenererd”})作为文本正文发送。由此,可以看到HTML标记。为了避免这种情况,将
    defMessage
    作为HTML正文发送

    修改脚本: 修改脚本时,请按以下方式修改

    发件人: 致: 参考资料:

    如果我误解了你的问题,而这不是你想要的方向,我道歉。

    非常感谢你的明确解释。我刚刚检查了模式2,效果很好。等我有更多时间时,我会检查模式1。@Nina Bakker感谢您的回复和测试。我很高兴你的问题解决了。
    html.replace(/<[^>]+>/g, "")
    
      MailApp.sendEmail(emailAddress, subject, defMessage, {
           name: "Automatisch gegenereerd"
    });
    
    var tempDoc = Drive.Files.insert({title: "temp", mimeType: MimeType.GOOGLE_DOCS}, Utilities.newBlob(defMessage, MimeType.HTML)).id
    defMessage = DocumentApp.openById(tempDoc).getBody().getText();
    Drive.Files.remove(tempDoc);
    MailApp.sendEmail(emailAddress, subject, defMessage, {name: "Automatisch gegenereerd"});
    
      MailApp.sendEmail(emailAddress, subject, defMessage, {
           name: "Automatisch gegenereerd"
    });
    
    MailApp.sendEmail({to: emailAddress, subject: subject, htmlBody: defMessage, name: "Automatisch gegenereerd"});