Чтение списка электронных писем из Google Sheet, но получение только строки «Range» из каждого предполагаемого электронного письма - PullRequest
0 голосов
/ 30 сентября 2019

Я создаю программу для отправки по электронной почте случайным 5 людям из списка каждый день. Я не хочу отправлять электронные письма одному и тому же лицу чаще, чем раз в неделю, поэтому я сохраняю текущий список электронных писем (переменные cdata) в ячейки с A1 по A32 на листе и удаляю людей, которых я отправил,по электронной почте. Я прошу прощения, если мой код грязный или плохой, это первый большой проект, который я сделал с помощью скрипта Google Apps.

Я посмотрел документацию, но не могу ничего найти.

function Send() {
  for (var ii = 0; ii < 3; ii ++) {
    //init
    var data = ["List of emails"]
    var ran = Math.floor(Math.random() * 32 + 1);
    var email = data[ran];
    var sub = "Subject";
    var body = "Body"

    //get data from sheet
    var a = "'Script Data Storage'!A" + (ran + 1)

    // compose cdata
    var cdata = []

    for (var iii = 0; iii < data.length; iii++) {
      var a = "'Script Data Storage'!A" + (iii + 1)
      // VV Below line returning string "range" and nothing else
      cdata.push(SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1bMTD83N5lxYAaBpQtkvpt_xaPKccl7h3rz3NR3Viv90/edit#gid=0').getRange(a).getValue());
    }
    //run

    GmailApp.sendEmail(email, sub, body)

    //remove item from cdata

    //find position of item to remove
    for( var i = 0; i < cdata.length; i++){ 
      if ( cdata[i] === email ) {
        var rem = cdata.splice(i, 1); 
      }
    }
    //remove item
    for( var i = 0; i < cdata.length; i++){ 
      if ( cdata[i] === rem) {
        cdata.splice(i, 1); 
      }

      //open sheet and save Data to Cell A1-A32

      for(var i = 0; i < cdata.length; i++) {
        var a = "'Script Data Storage'!A" + (i + 1)
        SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1bMTD83N5lxYAaBpQtkvpt_xaPKccl7h3rz3NR3Viv90/edit#gid=0').getRange(a).setValue(cdata[i]);        
      }
    }
  }
}

Я ожидаю, что cdata будет списком электронных писем, но все, что я получаю, это ["Range", "Range", "Range", .. "Range"]

Снимок экрана с выводом

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