Я создал форму HTML
, которая успешно отправляет данные на Google Sheets
через Google Apps Script
.
Теперь я хотел бы инициировать отправку подтверждающего электронного письма на адрес, введенный во ввод email
field.
Я действительно изо всех сил пытаюсь расширить функциональность моего сценария, несмотря на то, что трачу много часов на эту проблему. Буду очень признателен за любую помощь.
Код для формы 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();
}
}