SMTP и шаблоны писем
В панели администратора: System › Settings › Email (
/settings/email) — вкладки SMTP и Email templates. Журнал доставки: Overview › Support › Sent emails (/support/emails).
Назначение
NexCMP отправляет письма для подтверждения регистрации, сброса пароля, уведомления «VM ready» (с первоначальным паролем), счета, оповещения о низком балансе, продлениях, пополнениях, ответы техподдержки и многое другое. Все они отправляются через одну предоставленную вами учетную запись SMTP. Сообщения и шаблоны доступны на 16 языках; используется язык клиента.
Требования
| Параметр | Требование |
|---|---|
| SMTP-сервер | Хост, порт и учетные данные любого провайдера (собственный сервер, Brevo, Amazon SES, Mailgun, Google Workspace …) |
| Сеть | Исходящий TCP-трафик от сервера NexCMP к хосту и порту SMTP (587 STARTTLS, 465 TLS или 25) |
| Домен отправителя | Домен под вашим управлением с опубликованными для провайдера записями SPF и DKIM, а также записью DMARC |
| Разрешения | Учетной записи SMTP должна быть разрешена отправка с адреса From |
Доставляемость
Письма вроде «VM ready» содержат пароли. Если SPF/DKIM/DMARC домена отправителя не настроены для SMTP-провайдера, они попадут в спам. На странице есть напоминание об этом.
Подготовка почтового провайдера
- В панели провайдера добавьте и подтвердите домен отправителя (например,
example.com). - Опубликуйте DNS-записи SPF, DKIM и DMARC, указанные провайдером.
- Создайте пользователя SMTP (или ключ API-SMTP) и сохраните хост, порт, имя пользователя и пароль.
Подключение в NexCMP
- Откройте System › Settings › Email, вкладка SMTP.
- Заполните форму:
| Поле | Пример | Примечания |
|---|---|---|
| Хост | smtp.example.net | SMTP-сервер |
| Порт | 587 | |
| Безопасность | STARTTLS (587) | Выберите режим, требуемый вашим провайдером |
| Имя пользователя | smtp-user | |
| Пароль | (скрыто) | Только для записи: на странице отображается лишь то, задано ли значение |
| Email отправителя | no-reply@example.com | Должен быть авторизован у провайдера |
| Имя отправителя | Example Cloud | По умолчанию совпадает с названием вашего бренда |
| Reply-To (необязательно) | support@example.com | Куда приходят ответы клиентов |

- Нажмите Save, затем Send test и укажите свой адрес.
Настройки сохраняются в файле с ограниченным доступом (smtp.json, права 0600), и только фоновый воркер nexcmp-vmd отправляет почту; веб-служба лишь ставит её в очередь.
Проверка
- Тестовое сообщение поступает во входящие (проверьте также папку со спамом). В исходном тексте письма проверьте
dkim=passиspf=pass. - Откройте Support › Sent emails: у каждого сообщения отображаются статус (queued, sent, failed) и результат доставки. При сбоях отправка повторяется до 3 раз.
- Зарегистрируйте тестового клиента на портале и убедитесь, что письмо для подтверждения пришло.
Редактирование шаблонов писем
На вкладке Email templates перечислены все шаблоны по ключам с указанием доступных языков (например, verify_email, reset_password, vm_ready, invoice_paid, low_balance, topup_received, ticket_reply, scale_up …).
- Нажмите на шаблон и выберите язык.
- Отредактируйте тему и текст письма. Переменные заполняются при постановке сообщения в очередь.
- Сохраните изменения. Они применятся немедленно ко всем сообщениям, поставленным в очередь позже.

Ограничения и примечания
- Один SMTP-аккаунт на установку. Клиенты реселлеров получают письма через этот же аккаунт, если для реселлера не настроено иное.
- Действуют лимиты отправки провайдера; NexCMP не ограничивает скорость, кроме повторных попыток при ошибках.
- Без SMTP панель работает, но клиенты не смогут подтвердить регистрацию и сбросить пароль.
Устранение неполадок
| Симптом | Причина | Решение |
|---|---|---|
| Тестовое письмо не приходит | Неверные учетные данные, порт заблокирован, отправитель не авторизован | Проверьте ошибку SMTP в journalctl -u nexcmp-vmd; попробуйте порт 587 со STARTTLS; проверьте адрес From на стороне провайдера. |
| Письма попадают в спам | Записи SPF/DKIM/DMARC отсутствуют или настроены некорректно | Добавьте записи провайдера и отправляйте письма с этого домена. |
| Статус «failed» в Sent emails | Провайдер отклонил сообщение | Откройте строку, чтобы посмотреть ответ провайдера. |
| Поле пароля пустое после сохранения | Штатное поведение (только для записи) | После сохранения пароля отображается метка «current: set». |