Разрывы строк (\ r \ n) не поддерживаются для шаблонных писем, использующих sendgrid - PullRequest
1 голос
/ 21 февраля 2020

Я работаю над использованием sendgrid для отправки автоматических электронных писем через мое приложение. Когда я создал собственный шаблон Dynami c для обработки различных случаев для автоматических электронных писем, разрывы строк перестали работать над телом электронной почты или «текстом», я отправлял через API. Вот мой процесс:

  1. Когда пользователь регистрируется в приложении, маршрут API my / signup определяет тип электронного письма для отправки пользователю:
const msg = await getEmailType('signup', user)
Ожидаемая функция getEmailType возвращает следующий JSON объект в зависимости от регистра - в моем примере регистр 'signup':
const getEmailType = async (emailType, user, token, req) => {
  switch (emailType) {
    case 'signup':
      return {
        to: user.email,
        from: 'no-reply@app-address.com',
        templateId: templates.default,

        dynamic_template_data: {
          subject: 'Welcome to our app!',
          name: user.firstName,
          text:
            ' Here is the email body with some line breaks. Confirm your account at the link 
              below:\r\n' +
            ' http://app-address.herokuapp.com/\r\n'
        }
      }

Разрыв строки в 'text', который должен быть моим телом электронной почты, неправильно применяется в фактическом шаблоне электронной почты.

Объект JSON отправляется через sendgrid следующим образом, а затем форматируется как электронное письмо для отправки пользователю (здесь я также включил некоторые зависимости вверху для некоторого контекста на случай, если кто-то использовал sendgrid):
const sgMail = require('@sendgrid/mail')
sgMail.setApiKey(process.env.SENDGRID_API_KEY)

const sendEmail = async msg => {
  try {
    const response = await sgMail.send(msg)
    console.log('Response', response)
    return response
  } catch (error) {
    console.error(error)
  }
}

Шаблон, который я создал, выглядит хорошо и работает, но по какой-то причине, поскольку реальное электронное письмо, отправленное пользователю, возвращает HTML, сгенерированное редактором WYSIWYG, разрывы строк не работать из-за устаревшей настройки в api sendgrid.

Похоже, что нет обновленных ресурсов для этой проблемы, поэтому мне интересно, сталкивался ли кто-то еще с этим раньше и может ли помочь.

...