Микросервис email

В статье описана логика работы, функции, конфигурация и методы микросервиса email.

Микросервис email предназначен для отправки электронных писем пользователям.

Доступ к микросервису предоставляется по запросу.

Логика работы

В работе микросервиса используется сущность Email, которая содержит данные о конкретном email-письме: ID, отправитель, получатель, копия, тема, содержание, дата создания/отправки и др.).

Аутентификация и авторизация

Для работы с микросервисом аутентификация и авторизация не требуются.

Service context path

/api/email/

Настройки и параметры конфигурации

Параметры конфигурации указываются в Vault.

Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания. Инструмент может быть выбран другой.

По умолчанию

{
  "env": {
    "JAVA_XMS": "XXm",
    "JAVA_XMX": "YYYm",
    "POSTGRES_DATABASE": "email",
    "POSTGRES_MIGRATION_USER": "email_migration",
    "POSTGRES_PORT": "5432",
    "POSTGRES_USER": "email_user",
    "SPRING_PROFILES_ACTIVE": "предустановленная_конфигурация_для_сервиса"
  }
}

Copy-icon
Указываемые на каждом отдельном стенде

//пример взят с тестового стенда


{
  "env": {
    "DEFAULT_EMAIL_SENDER": "отправитель_email_писем_по_умолчанию",

    "KAFKA_BROKER_ADDRESS": "сокет_брокера_kafka",
    "POSTGRES_DATABASE": "email",
    "POSTGRES_HOST": "хост_бд",
    "POSTGRES_MIGRATION_PASSWORD": "пароль",
    "POSTGRES_PASSWORD": "пароль",
    "SPRING_MAIL_HOST": "хост_SMTP_сервера",
    "SPRING_MAIL_PASSWORD": "пароль",
    "SPRING_MAIL_PORT": "порт_SMTP_сервера",
    "SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH": "true",
    "SPRING_MAIL_USERNAME": "юзернейм_или_email"
  }
}

Copy-icon

Методы микросервиса Copy-icon

Отправка email-письма пользователю - POST запрос, /v1/emails/send

Request body sample

{
  "from": "info@online.shop",
  "to": "belov@pochta.ru",
  "subject": "Заказ принят в обработку",
  "body": "Здравствуйте! Ваш заказ #123-456 принят в обработку."
}

Copy-icon
Response sample

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "from": "info@online.shop",
  "to": "belov@pochta.ru",
  "cc": null,
  "subject": "Заказ принят в обработку",
  "body": "Здравствуйте! Ваш заказ #123-456 принят в обработку.",
  "state": "TO_SEND",
  "retries": 0,
  "createdDate": "2024-05-27T10:57:54.370Z",
  "sentDate": "2024-05-27T10:57:54.370Z",
  "lastRetryDate": "2024-05-27T10:57:54.370Z"
}

Copy-icon
Response codes
  • 201 - операция выполнена успешно
  • 500 - ошибка, Internal Server Error