feat(email): контактный адрес инстанса, Reply-To в письмах и тестовая отправка
Новая настройка instance_settings.contact_email (включён/адрес, с валидацией формата) — подставляется в заголовок Reply-To писем подтверждения регистрации, приглашений и саммари. Админ-эндпоинт POST /admin/settings/test-email отправляет проверочное письмо синхронно и возвращает внятный результат (успех либо текст ошибки транспорта), не раскрывая логин/пароль SMTP.
This commit is contained in:
@@ -156,3 +156,28 @@ class SettingsOut(BaseModel):
|
||||
registration_team_choice: bool
|
||||
registration_email_domain_enabled: bool
|
||||
registration_email_domain: str | None = None
|
||||
contact_email_enabled: bool
|
||||
contact_email: str | None = None
|
||||
|
||||
|
||||
class TestEmailIn(BaseModel):
|
||||
"""Тело запроса тестовой отправки (`POST /admin/settings/test-email`).
|
||||
|
||||
`to` не задан — получатель по умолчанию: email текущего администратора
|
||||
(см. `api/admin.py::send_test_email`).
|
||||
"""
|
||||
|
||||
to: EmailStr | None = None
|
||||
|
||||
|
||||
class TestEmailOut(BaseModel):
|
||||
"""Результат тестовой отправки — понятный админу успех/ошибка транспорта.
|
||||
|
||||
`smtp_host`/`smtp_port` — только хост и порт (без логина/пароля, они не
|
||||
покидают `.env`), заполняются лишь при `EMAIL_BACKEND=smtp`.
|
||||
"""
|
||||
|
||||
success: bool
|
||||
message: str
|
||||
smtp_host: str | None = None
|
||||
smtp_port: int | None = None
|
||||
|
||||
Reference in New Issue
Block a user