Запуск отправки почты в формате HTML с использованием скрипта Google Apps - PullRequest
1 голос
/ 16 октября 2019

Я создал форму HTML, которая успешно отправляет данные на Google Sheets через Google Apps Script.

Теперь я хотел бы инициировать отправку подтверждающего электронного письма на адрес, введенный во ввод emailfield.

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


Код для формы HTML:

<form action="https://script.google.com/macros/s/AKfycbzz-KveHder1A3CX8GcqZI6GR2MQj66PDRWNKoatIET_LXNqQs/exec" method="post" target="response">
<fieldset>
  <legend>Select Foobar</legend>
  <label><input type="checkbox" name="Foobar" value="Foo">Foo</label>
  <label><input type="checkbox" name="Foobar" value="Bar">Bar</label>
  <label><input type="checkbox" name="Foobar" value="Baz">Baz</label>
</fieldset>
<fieldset>
  <legend>Choose Xyzzy</legend>
  <label><input type="radio" name="Xyzzy" value="Quux">Quux</label>
  <label><input type="radio" name="Xyzzy" value="Quuz">Quuz</label>
</fieldset>
<fieldset>
  <legend>Enter Personal Details</legend>
  <input type="text" placeholder="John Doe" name="Name" required><br>
  <input type="email" placeholder="john.doe@example.com" name="Email"><br>
  <textarea placeholder="Lorem ipsum dolor sit amet…" name="Description"></textarea>
</fieldset>
<input type="submit" value="Submit">
</form>

<iframe name="response"></iframe>

Который подчиняется этому листу Google:

https://docs.google.com/spreadsheets/d/10VHS6bozcdNFYcRskkoONMT8Rt-2CwJ_LJGQWdkTJq4/


Соответствующий Google Apps Script код:

var sheetName = "Sheet1";
var scriptProperties = PropertiesService.getScriptProperties();

function intialSetup() {
  var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  scriptProperties.setProperty("key", activeSpreadsheet.getId());
}

function doPost(e) {
  var lock = LockService.getScriptLock();
  lock.tryLock(3000);

  try {
    var doc = SpreadsheetApp.openById(scriptProperties.getProperty("key"));
    var sheet = doc.getSheetByName(sheetName);

    var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
    var nextRow = sheet.getLastRow() + 1;

    var newRow = headers.map(function(header) {
      if (typeof e.parameters[header] !== "undefined") {
        return header === "Date" ? new Date() : e.parameters[header].join(", ");
      } else {
        return header === "Date" ? new Date() : e.parameters[header];
      }
    });

    sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow]);

    return HtmlService.createHtmlOutputFromFile(
      "Index"
    ).setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
  } catch (e) {
    return HtmlService.createHtmlOutputFromFile(
      "Error"
    ).setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
  } finally {
    lock.releaseLock();
  }
}
...