У меня есть скрипт, который создает PDF из таблицы и отправляет электронное письмо на адрес электронной почты в этой таблице.Когда файл PDF отправляется, скрипт автоматически добавляет строку в другую электронную таблицу с именем, адресом электронной почты и URL-адресом, связанным с этим файлом PDF, созданным и отправленным.
Пока все отлично работает.
Единственное, что я не могу понять, - это как я могу добавить дату, отправленную (из электронного письма) в электронную таблицу с именем, адресом электронной почты и URL-адресом, связаннымк этому PDF то будет создано и отправлено.
Понятия не имею, как мне найти дату отправленного электронного письма.Я пытался объяснить сценарий как можно больше.
function createPDF() {
var sheet1 = SpreadsheetApp.getActiveSpreadsheet();
var ui = SpreadsheetApp.getUi();
var result = ui.alert( // pop up to ask if the spreadsheet should be saved as pdf
"Opslaan als PDF?",
"Sla " +sheet1.getName()+ "_" + sheet1.getRange("A12").getValue() +".pdf op als PDF", // shows the name of the pdf that will be created
ui.ButtonSet.OK_CANCEL);
if (result == ui.Button.OK) {
var docblob =
SpreadsheetApp.getActiveSpreadsheet().getAs("application/pdf");
docblob.setName(sheet1.getName() + "_" + sheet1.getRange("A12").getValue() + ".pdf"); // combines name of spreadsheet and student to create name for pdf
var file = DriveApp.createFile(docblob);
ui.alert(sheet1.getName() + "_" + sheet1.getRange("A12").getValue() + " is beschikbaar via deze link: " + file.getUrl()); // url to created pdf
} else {
ui.alert("Opslaan als .pdf is niet gelukt");
}
// the following code add just created pdf and another (already excisting) pdf to email
var OOKnaam = file.getName(); // pdf just created
var bijlage1 = DriveApp.getFilesByName(OOKnaam);
var bijlage2 =
DriveApp.getFilesByName("Algemene_Voorwaarden.pdf"); // add the other pdf
var defMessage = "message to student";
var subject = "Je OOK & POK";
var emailAddress = sheet1.getRange("A13").getValue(); // gets the emailaddress added in spreadsheet to send mail
var ui = SpreadsheetApp.getUi(); // pop up with confirmation
var result2 = ui.alert(
"Versturen naar "+emailAddress+ "?",
ui.ButtonSet.OK_CANCEL);
if (result2 == ui.Button.OK) {
MailApp.sendEmail(emailAddress, subject, defMessage, {
replyTo: "email@email.nl",
name: "name of sender",
attachments: [bijlage1.next(), bijlage2.next()]
})
ui.alert("De email is verstuurd naar "+emailAddress);
} else {
ui.alert("Email versturen is mislukt");
}
// following code adds email, file name and url to another spreadsheet
var ontvangenSheet = SpreadsheetApp.openById(ID);
var eMailVoorReminder = sheet1.getRange("A13").getValue();
data = [
eMailVoorReminder,
file.getName(),
file.getUrl(),
];
ontvangenSheet.appendRow(data);
}
Я не ищу ответ сразу.Я хотел бы знать, с чего начать или посмотреть, чтобы я мог сам разобраться.
Редактировать: Я добавил метку времени в свой сценарий:
var formattedDate = Utilities.formatDate(new Date(), "GMT+2", "dd-MM-yyyy' om 'HH:mm");
data = [
eMailVoorReminder,
file.getName(),
file.getUrl(),
formattedDate,
];
ontvangenSheet.appendRow(data);
Он добавляет метку времени к добавленной строке, но делает это даже тогда, когда электронное письмо не отправлено (отменено).Так что пока не совсем доволен этим решением.