将多个(如果对账单+发送电子邮件)合并为一个



我的库存中有两种产品,每种产品都有最低限额;假设产品1为100Kg,产品2为200Kg

我尝试了以下代码,以便在产品数量低于的最小限制时发送电子邮件

代码运行得很好,但它会为每个产品发送一封电子邮件,以防任何产品符合if语句if (product1Quantity < product1Limit) {,因此如果它们都符合状态,我们将收到两封这样的电子邮件:

电子邮件1:

请检查

产品1 80Kg

电子邮件2:

请检查

产品2 120Kg

有没有什么方法可以修改代码,将这两种情况组合成一封这样的电子邮件:

电子邮件:

请检查

产品1为80Kg

产品2为120Kg

依此类推,如果我们有4种产品,而3种低于其最低限度,而第四种没有,请发送一封电子邮件,仅结合前面提到的前三种

重点是尽可能多地节省每日配额,以备我们增加更多产品时用于未来的增长。提前感谢

var product1 = newRow[6];
var product2 = newRow[18];
var inventory = doc.getSheetByName("Inventory");
var allProducts = inventory.getRange(2, 1, inventory.getLastRow()-1, 1).getValues();
if (allProducts.flat().indexOf(product1) != -1 && product1 != "") {
var product1Quantity = inventory.getRange(allProducts.flat().indexOf(product1)+2, 2).getValue();
var product1Limit = inventory.getRange(allProducts.flat().indexOf(product1)+2, 15).getValue();
if (product1Quantity < product1Limit) {
var list1 = product1.concat(product1Quantity);
// mailApp
MailApp.sendEmail({
to: "email",
subject: "subject",
htmlBody: "Please check<br>" +list1+ "<br>",
});
}
}
if (allProducts.flat().indexOf(product2) != -1 && product2 != "") {
var product2Quantity = inventory.getRange(allProducts.flat().indexOf(product2)+2, 2).getValue();
var product2Limit = inventory.getRange(allProducts.flat().indexOf(product2)+2, 15).getValue();
if (product2Quantity < product2Limit) {
var list2 = product2.concat(product2Quantity);
// mailApp
MailApp.sendEmail({
to: "email",
subject: "subject",
htmlBody: "Please check<br>" +list2+ "<br>",
});
}
}

与其为每个条件发送一封电子邮件,不如构建电子邮件正文,然后发送电子邮件。

var arr = [];
if(condition1){
arr.push('Product 1')
}
if(condition2){
arr.push('Product 2')
}
if(arr.length > 0) {
var body = arr.join('n');
MailApp.sendEmail(recipient,subject,body);
}

最新更新