Можно ли добавить namedValues в скриптлет при попытке использовать HTML-шаблон для отправки писем в App Script? Если да, то как, если нет, как я могу ссылаться на каждый вопрос в форме Google с помощью скриптлетов, чтобы при отправке формы шаблон HTML оценивал () каждую отправленную запись? Ниже приведен код
function sendEmail(e) {
var named_values = e.namedValues;
var name = named_values["Name"]
var timestamp = named_values["Timestamp"]
var subject = "Outlet "+ timestamp +""
const outlet = HtmlService.createTemplateFromFile('outlet');
outlet.named_values = named_values;
const message = outlet.evaluate().getContent();
MailApp.sendEmail({
to: '[email protected]',
subject: subject,
htmlBody: message
});
}
...и ниже код шаблона
<!DOCTYPE html>
<html>
<body>
<ul><li><b>Company:</b> <?= name ?></li>
<li><b>Loaction:</b> <?= timestamp ?></li></ul>
</body>
</html>
Мне нужен сценарий, чтобы выбрать «Имя» и «Временная метка» из данных, отправленных последними из формы Google, и отправить их по почте с использованием шаблона HTML. Спасибо.
Что вы подразумеваете под «именованными значениями»?
Я добавил код сценария приложения и код шаблона HTML.






e.namedValues — это объект, то есть у него есть свойства, эти свойства — заголовки форм, а их значения — ответы, которые люди отправляют в форму.
Представление объекта namedValues в документе Google выглядит следующим образом:
{
'First Name': ['Jane'],
'Timestamp': ['6/7/2015 20:54:13'],
'Last Name': ['Doe']
}
В вашем коде вам нужно получить доступ к значениям e.namedValues + конкретному полю заголовка, которое вы хотите получить. Например, чтобы получить временную метку, вы делаете это следующим образом:
let named_values = e.namedValues;
let timeStamp = named_values.Timestamp;
Чтобы заставить ваш скрипт работать, вы должны применить эту концепцию к своему коду. Способ сделать это следующий:
function sendEmail(e) {
let named_values = e.namedValues;
let name = named_values.Name;
let timeStamp = named_values.Timestamp;
let subject = "Outlet "+timeStamp;
let outlet = HtmlService.createTemplateFromFile('outlet');
outlet.timeStamp = timeStamp;
outlet.name = name;
let message = outlet.evaluate().getContent();
MailApp.sendEmail({
to: '[email protected]',
subject: subject,
htmlBody: message
});
}
И HTML должен выглядеть так:
<!DOCTYPE html>
<html>
<body>
<ul><li><b> timeStamp: </b> <?= timeStamp ?></li>
<li><b> Name: </b> <?= name ?></li></ul>
</body>
</html>
это сработало, и я ценю. Но добавил HTML-комментарий к коду, но комментарий не был включен в полученную почту. Что я могу с этим сделать, пожалуйста?
Привет, комментарий является другим полем формы? если да, вы можете присвоить его значение переменной так же, как код присваивает значения Name и TimeStamp, затем вы включаете это также в выход, а в файле HTML вы создаете новый раздел <li> с комментарием.
Это что-то вроде <!-- comment -->
Пожалуйста, приведите пример того, что вы хотите сделать