使用谷歌脚本发送多行电子邮件(谷歌表单)



我是脚本生活中的新手。我想发送一封基于多个单元格值的电子邮件。电子邮件正在工作,但有时我只有1个PO要发送,所以我当前的代码将发送PO1+9空行,我的电子邮件现在超长。

我认为我需要创建一个IF语句,但不确定从哪里开始。

function mailtest() {
var TO = SpreadsheetApp.getActiveSheet().getRange('N3').getValue();
var CC = SpreadsheetApp.getActiveSheet().getRange('N5').getValue();
var SUBJECT = SpreadsheetApp.getActiveSheet().getRange('L9').getValue();
var TEXT = SpreadsheetApp.getActiveSheet().getRange('L11').getValue();
var TEXT2 = SpreadsheetApp.getActiveSheet().getRange('L13').getValue();
var PO1 = SpreadsheetApp.getActiveSheet().getRange('L15').getValue();
var PO2 = SpreadsheetApp.getActiveSheet().getRange('L16').getValue();
var PO3 = SpreadsheetApp.getActiveSheet().getRange('L17').getValue();
var PO4 = SpreadsheetApp.getActiveSheet().getRange('L18').getValue();
var PO5 = SpreadsheetApp.getActiveSheet().getRange('L19').getValue();
var PO6 = SpreadsheetApp.getActiveSheet().getRange('L20').getValues();
var PO7 = SpreadsheetApp.getActiveSheet().getRange('L21').getValues();
var PO8 = SpreadsheetApp.getActiveSheet().getRange('L22').getValues();
var PO9 = SpreadsheetApp.getActiveSheet().getRange('L23').getValues();
var P10 = SpreadsheetApp.getActiveSheet().getRange('L24').getValues();
var signature = Gmail.Users.Settings.SendAs.list("me").sendAs.filter(function(account){if(account.isDefault){return true}})[0].signature; 
MailApp.sendEmail({
to: TO,
subject: SUBJECT,
cc: CC,
htmlBody: 
TEXT+"<br><br>"+
TEXT2+"<br><br>"+
//here is the problem ? I dont want PO3&4&5&6 if I only have 2 PO.
PO1+"<br>"+          
PO2+"<br>"+
PO3+"<br>"+
PO4+"<br>"+
PO5+"<br>"+
PO6+"<br>"+
PO7+"<br>"+
PO8+"<br>"+
PO9+"<br>"+
P10+"<br><br>"+
signature

});
}

只有当变量有值时,才希望在电子邮件中包含变量。以下代码与您的代码有几个不同之处。

  • 作为一个整体检索PO值:sheet.getRange(15,12,10,1).getValues();这使得能够在没有复杂变量处理的情况下评估内容
  • 代码循环通过以下值:for (var i=0; i<PO.length;i++){,以及
  • 评估PO是否具有值if ( if (POValue){){
  • 如果评估结果为是(PO有一个值(,则将其添加到电子邮件文本中(POText = POText+POValue+"<br>"(;否则,该PO不会包含在电子邮件文本中

function so58564238() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetname = "58564238";
var sheet = ss.getSheetByName(sheetname);
var POText = "";
var PO = sheet.getRange(15,12,10,1).getValues();
for (var i=0; i<PO.length;i++){
var POValue = PO[i][0];
if (POValue){
POText = POText+POValue+"<br>"       
}
}
Logger.log(POText)
}

合并邮件测试

function mailtest() {
var TO = SpreadsheetApp.getActiveSheet().getRange('N3').getValue();
var CC = SpreadsheetApp.getActiveSheet().getRange('N5').getValue();
var SUBJECT = SpreadsheetApp.getActiveSheet().getRange('L9').getValue();
var TEXT = SpreadsheetApp.getActiveSheet().getRange('L11').getValue();
var TEXT2 = SpreadsheetApp.getActiveSheet().getRange('L13').getValue();
var POText = "";
var PO = sheet.getRange(15,12,10,1).getValues();
for (var i=0; i<PO.length;i++){
var POValue = PO[i][0]
if (POValue){
POText = POText+POValue+"<br>"       
}
}
var signature = Gmail.Users.Settings.SendAs.list("me").sendAs.filter(function(account){if(account.isDefault){return true}})[0].signature; 
MailApp.sendEmail({
to: TO,
subject: SUBJECT,
cc: CC,
htmlBody: 
TEXT+"<br><br>"+
TEXT2+"<br><br>"+
POText+"<br>"+
signature
});
}

最新更新