API: Почта
API: Почта
Базовый путь: /api/v1/mail
Отправка писем через SMTP портала. Требуется:
- настроенный SMTP (админка → Настройки);
- включённая служба notifications;
- JWT-авторизация.
POST /mail/send
Поставить письмо в очередь (по умолчанию) или отправить сразу.
Права:
portal_admin— всегда;- остальные пользователи — только если в SMTP-настройках включено
allowAuthenticatedSend.
{ "to": "user@company.local", "cc": ["cc@company.local"], "bcc": [], "subject": "Тема письма", "text": "Текст", "html": "<p>HTML</p>", "replyTo": "noreply@company.local", "async": true}to— строка или массив email;textилиhtml— обязательно хотя бы одно;async: true(по умолчанию) — задание вportal_jobs, ответ202сjobId;async: false— немедленная отправка (толькоportal_admin).
Ответ (async):
{ "success": true, "data": { "async": true, "jobId": "uuid", "status": "pending" }}Типы заданий (worker)
| job_type | Описание |
|---|---|
notifications.sendEmail | Прямая отправка: to, subject, text/html |
notifications.sendEventEmail | Письмо по событию Event Receiver |
Event Receiver для почты
{ "eventName": "listItem.created", "title": "Почта при создании элемента", "serviceKey": "notifications", "jobType": "notifications.sendEventEmail", "config": { "to": "admin@company.local", "subject": "Событие: {{eventName}}", "text": "Пользователь {{userLogin}}, ресурс {{resourceType}} {{resourceId}}" }}Подстановки в шаблоне: {{eventName}}, {{userLogin}}, {{userId}}, {{resourceType}}, {{resourceId}}, {{details}}.
Админка: SMTP
| Метод | Путь |
|---|---|
| GET | /admin/settings/smtp |
| PUT | /admin/settings/smtp |
| GET | /admin/settings/smtp-status |
| POST | /admin/settings/smtp/test — { "to": "..." } |
Настройки хранятся в portal_services.config службы notifications. Опциональный fallback — переменные SMTP_* в .env.