邮件合并问题:将超链接从Google工作表传递到gmail

时间:2019-10-31 22:45:14

标签: html google-apps-script google-sheets gmail

我处于邮件合并项目的中间,并创建了一个包含我所有标准字段的google工作表。一个字段包括超链接。在我当前的代码中,我只能将超链接的文本传递到gmail。以下是我正在使用的HTML代码和google app脚本。我怀疑我需要修改HTML代码,但不确定如何继续。有问题的HTML代码为<?= fs ?>。任何支持将不胜感激。

HTML代码:

<body>
  <p>Please review and update your project management spreadsheet by [insert date] using the link: <?= fs ?></p>
</body>

Google Apps脚本

function myFunction() {      
  var school = 0;
  var contact = 2;
  var email = 5;
  var followUpSheet = 6;

  var emailTemp = HtmlService.createTemplateFromFile("File_name");

  var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet_Name");

  var data = ws.getRange("A2:P" + ws.getLastRow()).getValues();

  data.forEach(function(row){

    emailTemp.contact = row[contact];
    emailTemp.fs = row[followUpSheet];

    var htmlMessage = emailTemp.evaluate().getContent();

    GmailApp.sendEmail(
      row[email], 
      "Name of eMail", 
      "Your email doesn't support HTML.",
      {name: "name of sender", htmlBody: htmlMessage});
  });
}

此代码的输出为:

Please review and update your project management spreadsheet by [insert date] using the link: hyperlink text name

2 个答案:

答案 0 :(得分:0)

我认为您正在混淆客户端的HTML和服务器端的App脚本...请参阅这篇文章,以更好地了解Output filter results into a text box

答案 1 :(得分:0)

我决定将URL插入电子邮件。这解决了我的挑战。 HTML和GAS代码如下所示。

//HTML Code

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>

    <p>Dear <?= contact ?>,</p>
    <p>Insert paragraph 1</p>
    <p>Please review and update your project management spreadsheet by [insert date].  Select the link (or attachment) below to open your spreadsheet:</p>
    <ul style="list-style-type:disc;">
    <li><?= fs ?></li></ul>
    <p>If you have any questions please contact [team member name] (email: xxxx, phone: xxxx)</p>
    <p>Have a great day.</p>
    <p>Signature</p>

  </body>
</html>


//Google Apps Script

function myFunction() {

  var school = 0;
  var contact = 2;
  var email = 5;
  var URL = 7;

  var emailTemp = HtmlService.createTemplateFromFile("SpreadsheetName");

  var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");

  var data = ws.getRange("A2:P" + ws.getLastRow()).getValues();

  data.forEach(function(row){

    emailTemp.contact = row[contact];
    emailTemp.fs = row[URL];

    var htmlMessage = emailTemp.evaluate().getContent();

    GmailApp.sendEmail(
      row[email], 
      "Follow Up Email", 
      "Your email doesn't support HTML.",
      {name: "Representative", htmlBody: htmlMessage})

  });

}