Добавление даты отправки (из почты) в строку в таблице - PullRequest
0 голосов
/ 15 мая 2019

У меня есть скрипт, который создает 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);

Он добавляет метку времени к добавленной строке, но делает это даже тогда, когда электронное письмо не отправлено (отменено).Так что пока не совсем доволен этим решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...