问题描述
我想使用 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
这是我的输入
这是我想要的输出。
解决方法
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 中的数据:
草案:
您可以将更多电子邮件添加到收件人和抄送,方法是将它们放在单元格内的单独行中,但每行以 ctrl enter
结尾。发票也是如此。