首页 > 解决方案 > 我正在尝试从谷歌电子表格发送一封电子邮件,但是该邮件并未复制超链接

问题描述

我在 A 列中有“to”,在“B”列中有“message/body”。我有一个发送电子邮件的代码。但是,在我的消息中,我有一个超链接到另一张纸的单词,在发送电子邮件时,不考虑超链接。请在下面找到屏幕截图。超链接在 B 列中可见

但是,当发送电子邮件时,超链接是不可见的。请看下图

电子邮件中不考虑超链接

    function sendEmails() {    
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;
  var numRows = 1;
  var dataRange = sheet.getRange(startRow, 1, numRows, 2);
  var data = dataRange.getValues();
  for (var i in data) {
    var row = data[i];
    var emailAddress = row[0]; // First column
    var message = row[1]; // Second column
    var subject = 'Sending emails from a Spreadsheet';
    MailApp.sendEmail(emailAddress, subject, message);
  }
} 

标签: javascriptemailgoogle-apps-scriptgoogle-sheets

解决方案


使用模板化 HTML

var htmlBody = HtmlService.createTemplate('Email with <a href=<?=link?>> Some link </a>');  

htmlBody.link = row[1];

MailApp.sendEmail({
  to: row[0],
  subject: 'Sending emails from a Spreadsheet',
  htmlBody: htmlBody.evaluate().getContent()
});  

如果您有嵌入的单元格链接,您可以使用高级表格服务提取它们,如此所述,例如

var values = Sheets.Spreadsheets.get(SpreadsheetApp.getActive().getId(), {ranges: "Sheet1!B1:B10", fields: "sheets/data/rowData/values/hyperlink"})
var links = values.sheets[0].data[0].rowData.map(v => v.values[0].hyperlink);

他们在我提供的模板化 HTML 示例中使用它们。


推荐阅读