Google App Script,如何从文档中获取带格式的文本,并将其用于正文以发送电子邮件

时间:2017-03-31 07:17:49

标签: google-apps-script

我想使用google docs文件的内容从电子表格发送电子邮件以发送消息(电子邮件正文)。这就是我现在所拥有的,它运作良好。

*部分代码

var doc = DocumentApp.openById(row[9]);
var message = doc.getText();

MailApp.sendEmail(emailAddress, subject, "Dear " + row[6] +"\n\n"+ message + "\n\n"+ row[1] + "\n" + row[2] + "\n" + row[3] + "\n" + row[4]);

它工作得很好,但电子邮件是纯文本。

我有一些格式,例如Blod / Colored / List格式......等等。 如何在电子邮件中保留这些格式?

我尝试了getBody()或getParagraph(),但它只返回了“Document”或“Paragraph,Paragraph,Paragraph”。

提前致谢!

* FYI 我试过这个。 How to send rich text emails with GmailApp? 哪个工作正常,但我正在尝试找到一个直接使用富文本发送电子邮件的解决方案。不使用html格式。

1 个答案:

答案 0 :(得分:2)

function test_mail_() {
 var id = DocumentApp.getActiveDocument().getId();
 var url = "https://docs.google.com/feeds/download/documents/export/Export?id=" + id + "&exportFormat=html";
 var param = {
    method: "get",
    headers: {
        "Authorization": "Bearer " + ScriptApp.getOAuthToken()
    },
    muteHttpExceptions: true,
 };
 var html = UrlFetchApp.fetch(url, param).getContentText();
 var raw = Utilities.base64EncodeWebSafe("Subject: Test\r\n" +
    "From: " + Session.getActiveUser().getEmail() + "\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, 'test@gmail.com');
} 

这对我有用。希望这可能有所帮助