Это моя первая попытка с Google Script, поэтому он очень прост c. Цель состоит в том, чтобы сделать скрипт go по всем строкам моей базы данных и отправить электронные письма, если указанная ячейка c не пуста (чтобы не отправлять электронную почту несколько раз). Затем сценарий должен записаться в ячейку, чтобы пометить его как отправленный.
Я знаю, что для этого есть дополнения, но те, которые я пробовал, вызывали соединение между листами Google и базой данных, которую я использовал, и это питало это, чтобы сломаться, именно поэтому я пишу свой собственный фрагмент сценария.
Используемый мной документ Google Sheets содержит два листа: 1) «Лист 1», в котором содержится конкретная c информация о жалобе, и 2) «Лист 2», в котором указывается, кому его отправлять. .
Лист 1:
Лист 2:
Ниже мой сценарий, я знаю это очень основа c, но это уровень понимания, который у меня есть сейчас:
function automate_mail() {
//defines a counter for lines
var counter = 0;
// repeats for all lines
var data = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")
for (i in data) {
var row = data[i];
// Checks if cell is empty, if yes then do sth
var check_field_range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange(5,2 + counter);
var check_field = check_field.getValue();
if (check_field!==""){
// severity level
var complaint_level_range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange(2,2 + counter);
var complaint_level = complaint_level_range.getValue();
// message1
var message1_range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2").getRange(3,2 + counter);
var message1 = message1_range.getValue();
// message2
var message2_range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2").getRange(4,2+counter);
var message2 = message2_range.getValue();
// message3
var message3_range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2").getRange(5,2+counter);
var message3 = message3_range.getValue();
// message4
var message4_range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2").getRange(6,2+counter);
var message4 = message4_range.getValue();
// complaint_message
var complaint_message_range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange(3,2 + counter);
var complaint_message = complaint_message_range.getValue();
// location
var location_range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange(4,2 + counter);
var location = location_range.getValue();
//gets email address
var email_address_range = spreadsheetApp.getActiveSpreadsheet().getSheetbyName("Sheet2").getRange(1,2 + counter);
var email_address = email_address_range.value();
//gets name
var name_range = spreadsheetApp.getActiveSpreadsheet().getSheetbyName("Sheet2").getRange(2,2 + counter);
var name = name_range.value();
//gets date
var date_range = spreadsheetApp.getActiveSpreadsheet().getSheetbyName("Sheet1").getRange(1,2 + counter);
var date = date_range.value();
// This parses the data for the email to send
MailApp.sendEmail(email_address, "New complaint"+date , message1+complaint_level+message2+location+message3+complaint_message+message4);
//fill in control box
ActiveSheet("Sheet1");
SpreadsheetApp.getActiveSheet().getRange(5,2 + counter).setValue("1");
// increase counter by 1
counter = counter + 1
//else do nothing
//else{}
}
}
}