Google Apps Script: пример sendMail from form
Как отправлять электронные письма с помощью формы Google Apps Script
Google Apps Script — это мощный инструмент, позволяющий автоматизировать работу различных приложений Google, включая Google Forms, Google Sheets и Gmail. Одно из самых распространённых применений этого инструмента — отправка автоматических писем пользователям после заполнения формы. Это может быть полезно для подтверждения регистрации, отправки благодарственных писем или уведомлений администраторам.
Как это работает?
Когда пользователь заполняет форму Google, ответы сохраняются в Google Sheets. Сценарий Google Apps Script может реагировать на событие отправки формы и отправлять электронное письмо респонденту или администратору с помощью функции sendMail.
Настройка
- Откройте Google Sheets, которые связаны с вашими формами Google.
- Перейдите в Apps Scripti (расширения > Apps Script).
- Добавьте skript и сохраните.
- Установите триггер события:
- Нажмите “Edit” > “Triggers”.
- Добавьте новый триггер(
sendEmailOnFormSubmit
), выберите “From form” > “On form submit”.
Преимущества
- Автоматизированные ответы улучшают качество обслуживания пользователей.
- Быстрая и эффективная связь.
- Возможность настраивать и расширять содержание электронной почты.
С помощью этого метода вы можете легко создать динамическую систему электронной почты.
Образец
- Создана красивая форма с собственными выражениями (ВАЖНО! одно поле — email).
- GoogleTable сохраняет записи в форме

- Добавление Apps Script
function sendEmailToClient() {
//Текущая Гугл Таблица записана в переменную:
let ss = SpreadsheetApp.getActiveSpreadsheet();
//Лист текущей таблицы с именем "Ответы на форму (1)", в который загружаются ответы из формы, записан в переменную:
let listAnswers = ss.getSheetByName("Ответы на форму (1)");
//Получен email клиента из ячейки с адресом: последняя строка, 4 ряд, - и записан в переменную:
let clientEmail = listAnswers.getRange(listAnswers.getLastRow(),6).getValue();
//valik-viimane rida, kolmas veerg
let valik = listAnswers.getRange(listAnswers.getLastRow(),15).getValue();
let nimi=listAnswers.getRange(listAnswers.getLastRow(),2).getValue();
let sugu=listAnswers.getRange(listAnswers.getLastRow(),3).getValue();
let vanus=listAnswers.getRange(listAnswers.getLastRow(),4).getValue();
let syn=listAnswers.getRange(listAnswers.getLastRow(),5).getValue();
let post=listAnswers.getRange(listAnswers.getLastRow(),6).getValue();
let sport=listAnswers.getRange(listAnswers.getLastRow(),7).getValue();
let fusteg=listAnswers.getRange(listAnswers.getLastRow(),8).getValue();
let toit=listAnswers.getRange(listAnswers.getLastRow(),9).getValue();
let stress=listAnswers.getRange(listAnswers.getLastRow(),10).getValue();
let uni=listAnswers.getRange(listAnswers.getLastRow(),11).getValue();
let har=listAnswers.getRange(listAnswers.getLastRow(),12).getValue();
let elu=listAnswers.getRange(listAnswers.getLastRow(),13).getValue();
let rahul=listAnswers.getRange(listAnswers.getLastRow(),14).getValue();
//Тело письма, отформатированное в html-разметке, записано в переменную:
let bodyValik1 =
'Tere! <br/> Meie saime kätte teie <strong>küsitluse vastused</strong><br/> ' +
'Meil on heameel, et soovite meie uudiskirju saada!<br/>' + '<br/><br/>'+'<strong>Saadame Teile ka Teie vastused: </strong><br/>' + 'Teie nimi: ' + nimi + '<br/> <br/> Teie sugu: ' + sugu + '<br/> Teie vanus: ' + vanus + '<br/> Teie sünnipäev: ' + syn + '<br/> Teie e-post: ' + post + '<br/> Teie tegelete spordiga: '+ sport + '<br/> Teile meeldivad: ' + fusteg + '<br/> Toidust teie eelistate: ' + toit + '<br/> Teie igapäevane stressitase: ' + stress + '<br/>Teie magate: ' + uni + '<br/> Teie harjumused: ' + har + '<br/> Elustiili parandamise soov: ' + elu + '<br/>Elustiiliga rahulolek: ' + rahul +
'<br/><br/>' +
'Lugupidamisega, <br/> Anna Oleks';
let bodyValik2 =
'Tere! <br/> Meie saime kätte teie <strong>küsitluse vastused</strong><br/> ' +
'Meil on nii kahju, et Teie ei soovi meie uudiskirju saada!<br/>' + '<br/><br/>'+'<strong>Saadame Teile ka Teie vastused: </strong><br/>' + 'Teie nimi: ' + nimi + '<br/> <br/> Teie sugu: ' + sugu + '<br/> Teie vanus: ' + vanus + '<br/> Teie sünnipäev: ' + syn + '<br/> Teie e-post: ' + post + '<br/> Teie tegelete spordiga: '+ sport + '<br/> Teile meeldivad: ' + fusteg + '<br/> Toidust teie eelistate: ' + toit + '<br/> Teie igapäevane stressitase: ' + stress + '<br/>Teie magate: ' + uni + '<br/> Teie harjumused: ' + har + '<br/> Elustiili parandamise soov: ' + elu + '<br/>Elustiiliga rahulolek: ' + rahul +
'<br/><br/>' +
'Lugupidamisega, <br/> Anna Oleks';
let bodyValimta =
'Tere! <br/> Meie ei saanud kätte teie vastust meie uudiskirjade kohta!' +'<br/><br/>'+'<strong>Saadame Teile ka Teie vastused: </strong><br/>' + 'Teie nimi: ' + nimi + '<br/> <br/> Teie sugu: ' + sugu + '<br/> Teie vanus: ' + vanus + '<br/> Teie sünnipäev: ' + syn + '<br/> Teie e-post: ' + post + '<br/> Teie tegelete spordiga: '+ sport + '<br/> Teile meeldivad: ' + fusteg + '<br/> Toidust teie eelistate: ' + toit + '<br/> Teie igapäevane stressitase: ' + stress + '<br/>Teie magate: ' + uni + '<br/> Teie harjumused: ' + har + '<br/> Elustiili parandamise soov: ' + elu + '<br/>Elustiiliga rahulolek: ' + rahul +
'<br/><br/>' +
'Lugupidamisega, <br/> Anna Oleks';
'Lugupidamisega, <br/> Anna Oleks';
let body;
//tingimused
if(valik=='Jah'){body=bodyValik1}
else if(valik=='Ei'){body=bodyValik2}
else{body=bodyValimta}
//В описании кода приведены дополнительные пояснения относительно html-разметки
//Отправлено письмо клиенту (отправителем будет тот, кто запускает скрипт):
//Для отправки используется функция sendEmail (по-правильному: метод класса MailApp)
//Ссылка на подробную информацию о методе в описании к коду
MailApp.sendEmail(clientEmail, "Vormi vastus",'',{htmlBody: body});
}
Отправка письма респонденту
- Письмо, отправленное подписчику на рассылку

- Письмо, отправленное человеку, который отписался от рассылки

- Письмо, отправленное человеку,который не ответил на вопрос о рассылке.
