Сервис шаблонов электронной почты

Если мы разрабатываем более серьезное приложение, мы, вероятно, будем использовать какой-то вид уведомления по электронной почте или информационный бюллетень, или даже просто письмо о смене пароля. В этой статье я представлю свой сервис шаблонов электронной почты / pdf.

Код: https://github.com/MaurerKrisztian/template-api-tm

Демонстрация: https://template-api-tm-production.up.railway.app/template

Цель заключалась в следующем:

  • введя имя шаблона и данные заполнителей, я получаю заполненную html-страницу.

Размышляя об этом дальше, так как я использую его для электронной почты 90% времени, я поэтому встроил функцию отправки электронной почты.

Пример тела:

{
   "mailOptions": {
      "to": "test@gmail.com", 
      "subject": "test email"
   }, 
   "template": {
      "name": "test_template", 
      "data": {
         "title": "test title", 
         "description": "This is a test description", 
         "color": "#DEB887"
      }
   }
}
Вход в полноэкранный режим Выйти из полноэкранного режима

Для каждого запроса должны быть указаны: mailOption, template.name template.data

  • Работа над ошибками: В части данных легко ошибиться, поэтому каждый шаблон имеет валидатор.

  • Другая проблема заключалась в том, что если у нас несколько шаблонов, мы не можем запомнить, какие данные они ожидают, а копание в коде отнимает много времени. Поэтому я добавил конечную точку, где можно просмотреть самую важную информацию: доступные шаблоны, примеры данных и т.д.

https://template-api-tm-production.up.railway.app/template

  • Вы можете получить доступ к игровой площадке для тестирования шаблонов с различными данными, нажатием одной кнопки шаблон будет перерисован.

  • Письма могут работать только с inline css, однако писать весь шаблон с inline css не очень красиво и не удобно, поэтому css, указанный в теге style в шаблонах, автоматически преобразуется в inline при отправке.

  • Наконец, я также включил генерацию pdf, при запросе вы можете указать, что вы хотите: html или pdf.

Вот как выглядит процесс генерации:

  • проверка данных
  • заполнение шаблона полем с данными
  • конвертация в pdf (если необходимо)
  • преобразование css в шаблоне
  • отправка письма

Не идеальный, но мой 🙂 Тоже моя первая статья. 🥳

Оцените статью
devanswers.ru
Добавить комментарий