GmailApp.sendEmail синтаксис с псевдонимом - PullRequest
0 голосов
/ 05 марта 2020

Я написал фрагмент кода для автоматической отправки электронных писем из списка в листе Google (который работает), но когда я хочу добавить письмо с псевдонимом, я не могу заставить его работать. Любая помощь будет принята с благодарностью. Вот код:

    // This constant is written in column C for rows for which an email
    // has been sent successfully.
    var EMAIL_SENT = 'EMAIL_SENT';

    /**
   * Sends non-duplicate emails with data from the current spreadsheet.
   */
   function sendEmails2() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var startRow = 2; // First row of data to process
   var numRows =3; // Number of rows to process

   // Fetch the range of cells A2:E3
   var dataRange = sheet.getRange(startRow, 1, numRows, 5);

   // add the attachments variables
   var contents = DriveApp.getFolderById("").getFiles();
   var attachments = [];
   while (contents.hasNext()) {
    var file = contents.next();
    {
      attachments.push(file);
    }
   } 
   // Fetch values for each row in the Range.
   var data = dataRange.getValues();
   for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[0]; // First column
    var message = row[1]; // Second column
    var cuota = row[3]; // Fourth column
    var emailSent = row[4]; // Fifth column
    if (emailSent !== EMAIL_SENT && emailAddress !== "#N/A" && cuota !== 0) { 
    // Prevents    sending duplicates, no emails and parents that have already paid
    var subject = 'Recordatorio de cuota';                                  
    //Do not forget to remove EMAIL_SENT once done otherwise it won't work a 2nd time
      var me = Session.getActiveUser().getEmail();
      var aliases = GmailApp.getAliases()
      GmailApp.sendEmail(emailAddress,subject, message, {attachments: attachments},
      {from:  aliases[0]};
      sheet.getRange(startRow + i, 5).setValue(EMAIL_SENT);
      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
     }
     }
     }

1 Ответ

1 голос
/ 05 марта 2020

Попробуйте это:

function sendEmails2() {
  var ss=SpreadsheetApp.getActive();
  var sh=SpreadsheetApp.getActiveSheet();
  var sr=2;
  var numRows=3;
  var rg=sh.getRange(sr,1,sh.getLastRow()-sr+1,sh.getLastColumn());
  var contents=DriveApp.getFolderById("*****FolderId******").getFiles();
  var attachments=[];
  while (contents.hasNext()) {
    var file=contents.next(); 
    attachments.push(file);
  } 
  var data=rg.getValues();
  for (var i=0; i < data.length; ++i) {
    var row=data[i];
    var emailAddress=row[0];
    var message=row[1]; 
    var cuota=row[3];
    var emailSent=row[4];
    if (emailSent!="EMAIL_SENT" && emailAddress!="#N/A" && cuota!=0) { 
      var subject='Recordatorio de cuota';                                  
      var me=Session.getActiveUser().getEmail();
      var aliases=GmailApp.getAliases()
      GmailApp.sendEmail(emailAddress,subject, message,{attachments:attachments,from:aliases[0]});
      sh.getRange(sr+i,5).setValue("EMAIL_SENT");     
    }
  }
}
...