Отправить письмо с помощью скрипта Google Apps с вложением и пометить флажок, как сделано - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь создать сценарий, который будет отправлять электронные письма на основе данных в электронной таблице в листах Google.

Column 1 - emailAddress
Column 2 - subject
Column 3 - body
Column 4 - signature
Column 5 - fileName (name of the file I'd like to attach, will be different in each case)
Column 6 - checkbox (new functionality in G Sheets, marked= TRUE, unmarked=FALSE).

Цель состоит в том, чтобы отправлять электронные письма только тем, которые не помечены как отправленные.,После завершения сценария флажок должен измениться на TRUE, чтобы избежать дублирования.Я написал скрипт ниже, но есть две проблемы:

  • Как создать значение переменной fileName, которое будет взято в код из столбца 5?
  • Как заставить программу изменитьсястатус флажка в значение ИСТИНА и для исключения тех, которые уже ИСТИНА?

Функция:

function Email() {
  var rng = SpreadsheetApp.getActiveSheet().getActiveRange()
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = rng.getValues();
  for (i in data)  
    {
    var rowData = data[i];
    var checkbox = data[5]
    var file = DriveApp.getFilesByName(data[4]) 
    var emailAddress = rowData[0];
    var body = rowData[2];
    var subject = rowData[1]; 
    var signature = rowData[3];
    var message = body + '\n\n'+ signature;
      if(checkbox is != 'TRUE')
      {
      GmailApp.sendEmail(emailAddress,subject,message, 
      {
        attachments: [file.next().getAs(MimeType.PDF)]
      }
      );
    cell.setValue("TRUE");
    }
    }
}

1 Ответ

0 голосов
/ 18 мая 2018

Как сделать значение переменной fileName, которое будет взято в код из столбца 5?

Создать переменную var fileName. В целях уникальности просто добавьте счетчик в конце 1,2 и т. Д., Чтобы он заканчивался в виде fileName1, fileName2 и т. Д.

Как заставить программу изменить статус флажка на ИСТИНА и опустить те, которые уже ИСТИНА?

Используйте двойной цикл for, потому что работа с листами аналогична работе с 2D массивами . Внутри этого создайте оператор if:

if ( getValue () is! = 'TRUE') {

клетка. * +1019 * SetValue ( "TRUE") * * тысяча двадцать-одна

}

Надеюсь, вы получили идею из псевдокода.

...