Google apps script Google应用程序脚本MailApp用于htmlBody的使用文档
我有一个简单的文档/模板,我想在向用户发送电子邮件时使用。它在文本版本下运行良好,但我不知道如何以HTML格式发送文档。文档仅包含一些粗体格式的文本Google apps script Google应用程序脚本MailApp用于htmlBody的使用文档,google-apps-script,Google Apps Script,我有一个简单的文档/模板,我想在向用户发送电子邮件时使用。它在文本版本下运行良好,但我不知道如何以HTML格式发送文档。文档仅包含一些粗体格式的文本 function sendEmail(emailAddress, attachment){ var EMAIL_TEMPLATE_ID = "SOME_GOOGLE_DOC_ID"; var emailTemplate = DocumentApp.openById(EMAIL_TEMPLATE_ID); MailApp.se
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 });
}
功能发送电子邮件(电子邮件地址、附件){
var EMAIL\u TEMPLATE\u ID=“SOME\u GOOGLE\u DOC\u ID”;
var emailTemplate=DocumentApp.openById(EMAIL\u TEMPLATE\u ID);
MailApp.sendEmail(电子邮件地址,“主题”,emailTemplate.getText(),{
htmlBody:emailTemplate,当emailTemplate
变量的类型为Document时,htmlBody
参数需要一个字符串
你应该使用类似于
MailApp.sendEmail(emailAddress, "Subject", emailTemplate.getText(), {
htmlBody: emailTemplate.getBody().getText() });
htmlBody
参数需要一个字符串,而emailTemplate
变量的类型为Document
你应该使用类似于
MailApp.sendEmail(emailAddress, "Subject", emailTemplate.getText(), {
htmlBody: emailTemplate.getBody().getText() });
如果我们利用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 });
}
如果我们利用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 });
}
我找到的答案是这个
function getDocAsHtml(docId){
var url = 'https://docs.google.com/feeds/download/documents/Export?exportFormat=html&format=html&id=';
return UrlFetchApp.fetch(url+docId).getContentText();
}
效果很好我找到的答案是这个
function getDocAsHtml(docId){
var url = 'https://docs.google.com/feeds/download/documents/Export?exportFormat=html&format=html&id=';
return UrlFetchApp.fetch(url+docId).getContentText();
}
很好地工作htmlBody中的格式设置完全丢失(以简单字符串的形式接收)。这就是模板的外观(带斜体、粗体和回车的简单文本):htmlBody中的格式设置完全丢失(以简单字符串的形式接收)。这就是模板的外观(带斜体、粗体和回车的简单文本):如果你拿到了401,看看你拿到了401,看看