0

我有一个简单的文档/模板,我想在向用户发送电子邮件时使用。它适用于文本版本,但我无法弄清楚如何以 HTML 格式发送文档。该文档仅包含带有一些粗体格式的文本。

function sendEmail(emailAddress, attachment){
    var EMAIL_TEMPLATE_ID = "SOME_GOOGLE_DOC_ID";
    var emailTemplate = DocumentApp.openById(EMAIL_TEMPLATE_ID);
    MailApp.sendEmail(emailAddress, "Subject", emailTemplate.getText(), {  
        htmlBody: emailTemplate, <-- THIS does not return correct data  });
}
4

3 回答 3

3

我找到的答案是这个

function getDocAsHtml(docId){ 
  var url = 'https://docs.google.com/feeds/download/documents/Export?exportFormat=html&format=html&id=';
  return UrlFetchApp.fetch(url+docId).getContentText();
}

效果很好

于 2013-07-25T13:39:38.557 回答
0

如果我们利用 Roman Vialard 的 DriveApp 库,这是相当简单的。您需要按照此处的说明将库添加到您的项目中,然后您可以使用下面的代码。

/**
 * get a String containing the contents of the given document as HTML.
 * Uses DriveApp library, key Mi-n8njGmTTPutNPEIaArGOVJ5jnXUK_T.
 *
 * @param {String} docID ID of a Google Document
 *
 * @returns {String} Content of document, rendered in HTML.
 *
 * @see https://sites.google.com/site/scriptsexamples/new-connectors-to-google-services/driveservice
 */
function getDocAsHTML(docID) {
  var doc = DriveApp.getFileById(docID);
  var html = doc.file.content.src;
  var response = UrlFetchApp.fetch(html);
  var template = response.getContentText();

  return template;
}

function sendEmail(emailAddress, attachment){
    var EMAIL_TEMPLATE_ID = 'SOME_GOOGLE_DOC_ID';
    var emailTemplate = getDocAsHTML(EMAIL_TEMPLATE_ID);
    MailApp.sendEmail(emailAddress, "Subject", emailTemplate.getText(), {  
        htmlBody: emailTemplate });
}
于 2013-05-09T16:25:45.113 回答
0

htmlBody参数需要一个字符串,而emailTemplate变量是 Document 类型。

你应该使用类似的东西

 MailApp.sendEmail(emailAddress, "Subject", emailTemplate.getText(), {  
        htmlBody: emailTemplate.getBody().getText()  });
于 2013-05-09T08:17:22.990 回答