Я пытаюсь создать функцию с помощью скрипта приложений Google, чтобы пройтись по таблице ниже и отправить каждому поставщику электронное письмо с правильными позициями для заказа.
Диапазон моего заказа выглядит следующим образом:
Supplier Name | Item | Qty
-----------------------------------------------------
My Veg Supplier | Baby Spinach (Kg) |0.8
My Veg Supplier | Basil (Kg) |0.1
My Veg Supplier | Chives (KG) |0.2
My Veg Supplier | Lettuce Mixed |1
My Veg Supplier | Onions Spring |3
Baking Supplier | Apple Cruffin |3
Baking Supplier | Brioche Rolls |7
Baking Supplier | Croissant Plain |17
Baking Supplier | Dinner Roll |6
Baking Supplier | RSofa Ciabatta |5
Baking Supplier | Seed Loaf Large |1
, а диапазон информации о моем поставщике выглядит следующим образом:
Supplier Name | Email
-------------------------------------------------
My Veg Supplier | veg@veg.com
Baking Supplier | bread@bread.com
У меня есть сценарий, который проходит через желоб иправильно получает элементы на заказ, а также перебирает диапазон информации о поставщике и для каждого значения получает соответствующий адрес электронной почты.
Я опущу первую функцию, которая получает элементы на заказ, так как она довольно длиннаяи это не проблема, но я борюсь за то, чтобы сказать: «Проходить через поставщиков и получить имя поставщика и адрес электронной почты для mailApp.sendEmail и т. д.»
Моя текущая функция получает каждого поставщика и отправляет почту успешно, новсегда отправляет по всем адресам всех поставщиков, а не только адрес, связанный с этим поставщиком
Вот оно:
function loopMail(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var bulk = ss.getSheetByName("To Email");
var SupplierVals = ss.getRange("H2:H").getValues(); //Supplier Column
var Supplierlast = SupplierVals.filter(String).length;
var supplierArray = bulk.getRange(2, 8,Supplierlast,1).getDisplayValues(); // unique supplier column
var EmailVals = ss.getRange("J2:J").getValues(); //Email Column
var EmailLast = EmailVals.filter(String).length;
var emailArray = bulk.getRange(2, 10,Supplierlast,1).getDisplayValues(); // unique email column
for each (var supplier in supplierArray ){
for each (var emailAddress in emailArray ){
var subject = "New Order";
var emailBody = emailBody;
MailApp.sendEmail(emailAddress,subject + supplier,emailBody, {name: 'My Company', replyTo: 'orders@mycompany.com', to: emailAddress, htmlBody: emailBody});
var confirm = Browser.msgBox('Order has been sent to ' + supplier + ' (' + emailAddress + ')', Browser.Buttons.OK);
}}
}