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