Настройка сервера почты
Без настроенной почты нельзя приглашать пользователей и восстанавливать пароли. Параметры задаются в файле .env в каталоге установки.
Параметры
| Параметр | Пример | Описание |
|---|---|---|
MAIL_MAILER | smtp | Способ отправки. Обычный SMTP — smtp. Для сервера с самоподписанным сертификатом — smtp_no_encryption, см. ниже. |
MAIL_HOST | smtp.company.ru | Хост почтового сервера. |
MAIL_PORT | 587 | Порт. Обычно 587 для STARTTLS и 465 для SMTPS. |
MAIL_ENCRYPTION | tls | Шифрование: tls для порта 587, ssl для порта 465, null — без шифрования. |
MAIL_USERNAME | no-reply@company.ru | Пользователь SMTP. |
MAIL_PASSWORD | s3cret | Пароль SMTP. |
MAIL_FROM_ADDRESS | no-reply@company.ru | Адрес в поле «От кого». |
MAIL_FROM_NAME | DoQA | Имя в поле «От кого». |
MAIL_PORT и MAIL_ENCRYPTION задаются независимо друг от друга: порт 465 без MAIL_ENCRYPTION=ssl работать не будет.
Перезапустите приложение
Значения .env попадают в контейнеры при их создании. После правки почтовых параметров выполните stop и start — иначе приложение продолжит работать со старыми настройками:
./doqa stop && ./doqa start
SMTP без проверки сертификата
Для внутреннего почтового сервера с самоподписанным сертификатом переключите отправку на mailer, который сертификат не проверяет:
MAIL_MAILER=smtp_no_encryption
MAIL_VERIFY_PEER=false
MAIL_VERIFY_PEER_NAME=false
| Параметр | Описание |
|---|---|
MAIL_VERIFY_PEER | Проверять сертификат сервера. По умолчанию false. |
MAIL_VERIFY_PEER_NAME | Проверять соответствие имени в сертификате. По умолчанию false. |
MAIL_AUTH_MODE | Режим аутентификации SMTP: plain, login, cram-md5. По умолчанию не задан — режим выбирается автоматически. |
Остальные параметры (MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_ENCRYPTION) этот mailer читает те же самые.
Проверка
- Перезапустите приложение после правки
.env. - Пригласите пользователя в настройках администратора и проверьте, что письмо пришло.
- Если письма нет — посмотрите логи приложения, ошибки SMTP видны там:
docker compose logs -f api
Письма отправляются фоновым обработчиком очередей, а не в момент нажатия кнопки. Если контейнер очередей не поднят, письмо не уйдёт и ошибки в логах приложения не будет — проверьте его состояние:
docker compose ps queue