Содержимое электронной почты SendGrid иногда отображается в неправильном формате с использованием Node.js + Express (динJavascript

Форум по Javascript
Ответить
Anonymous
 Содержимое электронной почты SendGrid иногда отображается в неправильном формате с использованием Node.js + Express (дин

Сообщение Anonymous »

Стек технологий
  • Node.js
  • Express.js
  • @sendgrid/mail
  • SendGrid (динамические шаблоны и HTML-шаблоны)
Иногда электронные письма, отправленные через SendGrid, отображаются в неправильном или некорректном формате (проблемы с макетом, отсутствие структуры или неожиданный рендеринг).
Основные наблюдения:
Один и тот же шаблон работает правильно в большинстве случаев.
Проблема решается автоматически через некоторое время.
Для того, чтобы он снова начал работать, не требуется никаких изменений кода или повторного развертывания.
Изначально я использовал динамические шаблоны SendGrid с Dynamic_template_data.
После обнаружения этой проблемы я преобразовал все шаблоны в чистые HTML-шаблоны, предполагая, что проблема связана с динамическими данными шаблона.
Однако проблема по-прежнему иногда возникает, даже с HTML-шаблонами.
Я также обращался в службу поддержки SendGrid, но они не смогли определить основную причину.
Функция отправки электронной почты

Код: Выделить всё

exports.sendPaymentDueDateReminderEmail = async ({
email,
subject,
url,
beneficiary,
sponsorName,
dueDateWithDetails,
}) => {
try {
mailConfigObj.to = email;
mailConfigObj.cc = ADMIN_EMAIL_ADDRESS;

mailConfigObj.dynamic_template_data = {
subject: sanitizeForTemplate(subject),
url: sanitizeForTemplate(url),
beneficiary: sanitizeForTemplate(beneficiary),
sponsorName: sanitizeForTemplate(sponsorName),
dueDateWithDetails: sanitizeForTemplate(dueDateWithDetails),
};

mailConfigObj.template_id = "DYNAMIC_TEMPLATE_ID";

const response = await sgMail.send(mailConfigObj);
return response;
} catch (error) {
console.error(error);
throw error;
}
};

SendGrid configuration
const sgMail = require("@sendgrid/mail");
sgMail.setApiKey(process.env.SENDGRID_API_KEY);

const MAIL_FROM = {
email: "no-reply@example.com",
name: "System Notification",
};

const mailConfigObj = {
from: MAIL_FROM,
};

Sanitization helper
const sanitizeForTemplate = (value) => {
if (value === null || value === undefined) return "";
return String(value);
};
Будем очень признательны за любые рекомендации или практический опыт.

Подробнее здесь: https://stackoverflow.com/questions/798 ... js-express
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»