Транзакционные шаблоны SendGrid Ошибка функции Netlify - PullRequest
0 голосов
/ 01 ноября 2018

У меня возникают некоторые проблемы с транзакционными шаблонами 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:&nbsp;</span>{{name}}</div>
        <div><span>Email:&nbsp;</span>{{email}}</div>
        <div><span>Phone:&nbsp;</span>{{phone}}</div>
        <h1><span>Message</span></h1>
        <div><span>Message:&nbsp;</span>{{message}}</div>

Я также использую netlify-lambda для архивирования файлов функций.

...