Микросервис 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": "предустановленная_конфигурация_для_сервиса"
}
}
//пример взят с тестового стенда
{
"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"
}
}
Методы микросервиса
Отправка email-письма пользователю - POST запрос, /v1/emails/send
{
"from": "info@online.shop",
"to": "belov@pochta.ru",
"subject": "Заказ принят в обработку",
"body": "Здравствуйте! Ваш заказ #123-456 принят в обработку."
}
{
"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"
}
- 201 - операция выполнена успешно
- 500 - ошибка, Internal Server Error