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.

Настройка

  1. Откройте Google Sheets, которые связаны с вашими формами Google.
  2. Перейдите в Apps Scripti (расширения > Apps Script).
  3. Добавьте skript и сохраните.
  4. Установите триггер события:
    • Нажмите “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});

    }

Отправка письма респонденту

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

Источник