如何使用GmailApp发送富文本电子邮件?

时间:2016-09-29 20:36:50

标签: google-apps-script

我正在尝试通过电子邮件发送包含所有格式的Google文档。

function sendGoogleDocInEmail() {

  var doc = DocumentApp.openById("example_Id");
  var body = doc.getBody();
  var text = body.getText();

  GmailApp.sendEmail("emailaddress@gmail.com", "Hi", text);

此代码工作正常,但电子邮件以纯文本形式发送。

我在Google文档中有描述性的超链接文本片段,并且在转换为纯文本时会丢失超链接。

在发送电子邮件时,有什么办法可以保留所有超文本格式吗?

我尝试将body对象传递给方法,但只是在主体中发送一封带有DocumentBodySection的电子邮件。

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试使用此脚本的组合:https://stackoverflow.com/a/28503601/3520117

然后使用MailApp.sendEmail方法的htmlBody参数。

未经测试,但应该有效:

function emailGoogleDoc(){
  var id = DocumentApp.getActiveDocument().getId() ;
  var forDriveScope = DriveApp.getStorageUsed(); //needed to get Drive Scope requested
  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();
  Logger.log(html);

  var email = person@domain.tld;  
  var subject = 'Subject line';
  var body = "To view this email, please enable html in your email client.";

  MailApp.sendEmail(
    email,           // recipient
    subject,         // subject 
    body, {          // body
      htmlBody: html // advanced options
    }
  );
}