У меня возникают некоторые проблемы с транзакционными шаблонами SendGrid при использовании функций node.js и netlifys.
Когда я использую необработанный шаблон HTML в файле function.js для свойства msg.html, он работает нормально.
Когда я использую замены SendGrid v2, электронное письмо отправляется на мой электронный адрес, но свойства руля, например, {{name}} не помещается в электронное письмо.
Я получаю ошибку
5:18:42 PM: TypeError: s is not a function
5:18:42 PM: {"errorMessage":"TypeError: s is not a function"}
Функция.js
const sgMail = require('@sendgrid/mail')
exports.handler = function (event, context, callback) {
sgMail.setApiKey(process.env.SENDGRID_API_KEY)
sgMail.setSubstitutionWrappers('{{', '}}')
let body = JSON.parse(event.body)
let msg = {
to: process.env.CONTACT_MAIL_TO,
from: process.env.CONTACT_MAIL_FROM,
subject: 'Website Contact Form',
text: 'Someone has filled out a form on your website, check out the message they left and get in touch with them :)',
templateId: 'd-39c15b77271449548e2f13b66920f808',
html: '<p>Hello HTML world!</p>',
dynamic_template_data: {
subject: 'Testing Templates',
name: body.name,
phone: body.phone,
email: body.email,
message: body.message,
website: body.website
}
}
sgMail.send(msg).then(() => {
console.log(`Contact form sent from: ${process.env.CONTACT_MAIL_FROM}, to: ${process.env.CONTACT_MAIL_TO}, with name: ${body.name}`)
callback()
}).catch(e => {
console.error(e.toString())
callback(e.toString())
})
}
В package.json есть следующее
"engines": {
"node": ">= 8.0.0",
"npm": ">= 3.0.0"
}
"dependencies": {
"@sendgrid/mail": "^6.3.1"...
Вот пример того, как я использую разметку и рули для шаблона на https://sendgrid.com/dynamic_templates
<div><span>Name: </span>{{name}}</div>
<div><span>Email: </span>{{email}}</div>
<div><span>Phone: </span>{{phone}}</div>
<h1><span>Message</span></h1>
<div><span>Message: </span>{{message}}</div>
Я также использую netlify-lambda для архивирования файлов функций.