如何使用 Google App Script 从电子表格中生成 Gmail 草稿包含正文中的表格

问题描述

我想使用 Google App Script 从电子表格中生成 Gmail 草稿,其中包含正文中的表格。

以下是我拥有的输入值和我想要的输出类型的屏幕截图。

如果您能分享完整的 GS 代码,我将不胜感激,因为我是 Google App Scripts 的新手。

此外,我还想在电子邮件正文中签名,“谢谢和问候”是我的正文部分。

另外请注意,E 列是动态的,意味着它可能有 1 行并且可能超过 1。

目前我正在使用此代码

function Email_Loop_BL() {


const signature = Gmail.Users.Settings.SendAs.list("me").sendAs.filter(function(account){if(account.isDefault){return true}})[0].signature;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var index = 2;
var index1 = 2;
var lastRow = sheet.getLastRow();
var data = sheet.getRange(1,5,10).getValues();
Logger.log(data)
for (;index1 <= data; index1++){
  var message2 = sheet.getRange(index,1,1).getValue();
}

var emailAddress = sheet.getRange(index,1).getValue();
var ccmail = sheet.getRange(index,2,1).getValue();
var subject = sheet.getRange(index,3,1).getValue();
var message = sheet.getRange(index,4,1).getValue();


//var location = sheet.getRange(index,1).getValue();
//var guests = sheet.getRange(index,6,1).getValue();
//var eventColour = sheet.getRange(index,7,1).getValue();
//var sendInvites = true;

  
const html = "<div> </div><br>" + signature;
const options = {
  htmlBody: message + data + html,cc: ccmail
}  
GmailApp.createDraft(emailAddress,subject,'',options);




}// End of Function

Input

这是我的输入

this is my output I want.

这是我想要的输出

解决方法

function sendemail() {
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getSheetByName('Sheet1');
  const rg=sh.getDataRange();
  const vs=rg.getDisplayValues();
  GmailApp.createDraft(vs[1][0].toString().split(/\n/).join(','),vs[1][2],'',{htmlBody:vs[1][3].toString().split(/\n/).join('<br>') + '<br>' + vs[1][4].toString().split(/\n/).join('<br>') + '<br>' + vs[1][5],cc:vs[1][1].toString().split(/\n/).join(',')});
}

我在 Sheet1 中的数据:

enter image description here

草案:

enter image description here

您可以将更多电子邮件添加到收件人和抄送,方法是将它们放在单元格内的单独行中,但每行以 ctrl enter 结尾。发票也是如此。