Google Spreadsheets и MailApp.sendEmail

Мне необходимо осуществить массовую рассылку писем при помощи Google Spreadsheets. Код сам по себе работает, однако, при вызове функции в Google Spreadsheets отвечает, что не хватает разрешений, однако в моем Google-аккаунте разрешений достаточно (и в Apps Script код работает, рассылает письма, как и должен).

Exception: You do not have permission to call MailApp.sendEmail. Required permissions: https://www.googleapis.com/auth/script.send_mail (line 12).

Необходимо ли мне каким-либо образом выставить разрешения для Google Spreadsheets? Код прилагаю ниже

function MASSMAIL(cellEmail, cellTitle, cellText) 
{
    var ss = SpreadsheetApp.getActiveSpreadsheet(), ssname = ss.getSheetByName('Mailing');
    if(ssname == null) return "ERROR: must be used on 'mailing' page!"
    var title = ssname.getRange(cellTitle).getValue();
    var text = ssname.getRange(cellText).getValue();
    if(title == "" || text == "") return "ERROR: empty title or main body!";

    var email = ssname.getRange(cellEmail).getValue();
    var rng = ssname.getRange(cellEmail);
    while(email != "") {
      MailApp.sendEmail(email, title, text);
      rng = rng.getNextDataCell(SpreadsheetApp.Direction.DOWN);
      email = rng.getValue();
    }
    return "emails successfully sent";
}

Заранее благодарю за ответ.


Ответы (1 шт):

Автор решения: contributorpw

Пользовательские функции могут вызывать только определенные сервисы для выполнения сложных задач Custom Functions > Advanced > Using Apps Script services

Отправки почты в этом списке нет.

Если ваша функция выдает сообщение об ошибке "You do not have permission to call X service", значит служба требует авторизации пользователя и, следовательно, не может использоваться в пользовательской функции. Чтобы использовать службу, отличную от перечисленных тут, создайте настраиваемое меню, которое запускает вашу функцию. Скрипт, который запускается из меню, при необходимости запрашивает у пользователя авторизацию и, следовательно, может использовать все службы Apps Script.

→ Ссылка