【问题标题】:Sending Google Doc as HTML in email body using Google Apps Script while preserving format使用 Google Apps 脚本在电子邮件正文中将 Google Doc 作为 HTML 发送,同时保留格式
【发布时间】:2023-03-15 11:48:01
【问题描述】:

在 Google Doc 上使用下面的脚本,我试图在电子邮件正文中将文档作为 HTML 发送。它正在正确转换文档(当我通过 url 检查导出的文档时)并发送具有相同内容的电子邮件,但它在某些时候丢失了以下格式:字体格式(例如,大小、颜色)和表格格式(例如,边框,背景颜色)

function sendGoogleDocAsHTML(){
  var id = DocumentApp.getActiveDocument().getId() ;
  var url = "https://docs.google.com/document/d/"+id+"/export?format=html"
  var param = {
method      : "get",
headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
muteHttpExceptions:true,
  };
  var html = UrlFetchApp.fetch(url, param);
  var email = <EMAIL>;
  var subject = <SUBJECT>;
  GmailApp.sendEmail(email, subject,"", {htmlBody:html});
}

如何保留电子邮件中的格式?

【问题讨论】:

  • 原始 HTML 是否包含指向 CSS 文件的链接?我认为电子邮件中的 html 仅支持内联样式。 (内联 CSS - 在特定 HTML 元素内)
  • 而且即使是内联样式也不完全支持,Gmail 对 HTML 和 CSS 的解释很差
  • 原始 HTML 不包含指向 CSS 文件的链接。看起来它使用了内部 CSS(我在导出文档的 部分看到了一个长的
  • 您必须处理每个项目类型。自从我尝试这样做已经有一段时间了(最终走向了不同的方向),所以我有一些旧代码,但不确定它是否真的有效。我知道我必须单独处理各种element types,例如获取图像的 blob。我所拥有的一切显然来自this developers blog post

标签: html email google-apps-script google-docs mailmerge


【解决方案1】:

这对我来说很好。希望这可能会有所帮助

  function sendGoogleDocAsHTML(){
  var id = DocumentApp.getActiveDocument().getId() ;
  var url = "https://docs.google.com/document/d/"+id+"/export?format=html"
  var param = {
      method      : "get",
      headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
      muteHttpExceptions:true,
  };
  var html = UrlFetchApp.fetch(url, param);
  var raw = Utilities.base64EncodeWebSafe("Subject: Test\r\n" +
                                            "To: test@gmail.com\r\n" +
                                            "Content-Type: text/html; charset=UTF-8\r\n\r\n" +
                                            html+"\r\n\r\n");
   var message = Gmail.newMessage();
   message.raw = raw;
   var sentMsg = Gmail.Users.Messages.send(message, 'me');
}

【讨论】:

    猜你喜欢
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    相关资源
    最近更新 更多