У меня есть Google Apps Script WebApp, который автоматизирует электронную почту для определенных событий с помощью webhooks.
У меня есть массив объектов, которые мне нужно сопоставить с файлом шаблона html в том же каталоге.
Например, мой файл Code.gs выглядит так:
function doThing() {
if ('Some condtition' === true) {
let template = HtmlService.createTemplateFromFile('my-template')
let items = [
{ name: 'John Smith', age: 20, address: '123 fakestreet' },
{ name: 'Sam Smith', age: 27, address: '123 fakestreet' },
{ name: 'Phil Smith', age: 10, address: '123 fakestreet' }
]
template.items = items
MailApp.sendEmail({
to: 'John@gmail.com',
subject: 'This is an automated email',
htmlBody: template.evaluate().getContent()
})
}
}
И файл my-template. html выглядит следующим образом:
<body>
<!-- This is how to call the passed variable -->
<?= items ?>
<!-- I want to map my items like this -->
<div>
<div>John Smith</div>
<div>20</div>
<div>123 fakestreet</div>
</div>
<div>
<div>Sam Smith</div>
<div>27</div>
<div>123 fakestreet</div>
</div>
<div>
<div>Phil Smith</div>
<div>10</div>
<div>123 fakestreet</div>
</div>
</body>
У меня есть попытался использовать теги сценария в файле html, но они, похоже, не выполняются, возможно, из-за его отправки по электронной почте.
Я также попытался отобразить каждый элемент в строку и передать строку в html вот так:
let items = '<div>
<div>John Smith</div>
<div>20</div>
<div>123 fakestreet</div>
</div>
<div>
<div>Sam Smith</div>
<div>27</div>
<div>123 fakestreet</div>
</div>...'
Но это просто записывает строку с тегами.