Техническое задание: Настройка системы отправки транзакционных писем

Цель проекта

Создать отказоустойчивую и масштабируемую систему для автоматической отправки системных (транзакционных) электронных писем, критически важных для работы веб-приложения.

Основные задачи

  • Организовать отправку писем для ключевых сценариев: подтверждение регистрации, напоминания, восстановление доступа.
  • Настроить интеграцию с внешним SMTP-сервером или email-провайдером.
  • Обеспечить безопасное хранение конфиденциальных данных (логины, пароли, API-ключи) через использование файла .env или аналогичного механизма переменных окружения.
  • Реализовать механизм очереди (queue) для асинхронной отправки писем, чтобы не блокировать основной поток работы приложения.
  • Добавить в систему логику повторных попыток отправки (retry) с экспоненциальной задержкой между ними для повышения надежности.
  • Обеспечить логирование процесса отправки для отслеживания и отладки.

Требования к реализации

  • Архитектура должна быть модульной и легко поддерживаемой.
  • Код должен быть документирован.
  • Система должна корректно обрабатывать ошибки соединения и временную недоступность почтового сервиса.
  • Предоставить инструкцию по развертыванию и конфигурации.