Почта и домены
Свой почтовый сервер, домены и DNS, автонастройка почтовых ящиков сотрудников и организаций.
Содержание раздела
- Почтовый сервер (SmitMailServ)
- Вкладка «Обзор»
- Вкладка «Ящики»
- Вкладка «Домены»
- Вкладка «Страница входа»
- REST API внутри биллинга
- Веб-почта: календарь, контакты, брендинг
- Имя, подпись и фото из профиля
- Адресная книга из биллинга
- Вкладка «Почта» в панели уведомлений
- Настройки сервера
- Здоровье сервера и доставляемость
- Резервный архив писем
- Письма не приходят: что проверить
- Колонка «Писем» в списке ящиков
- Домены и DNS (Cloudflare)
- Автонастройка почтовых ящиков и DNS
- Что делает автонастройка
- Где доступна
- Ящик сотрудника и пересылка
Почтовый сервер (SmitMailServ)
URL: /admin/settings/mailserver/ — собственный почтовый сервер
SmitMailServ: приём и отправка писем, антиспам, хранение и веб-почта. Ящики,
домены и роли хранятся в базе биллинга — завели ящик в разделе, и почтовый сервер видит его
сразу, без правки конфигов. Раздел открыт суперпользователю и группам администраторов.
Пять вкладок: Обзор, Домены, Ящики, Страница входа и Настройки сервера.
Где заводить ящики, зачем домену организация, что делает роль ящика и куда смотреть, когда «почта не работает».
Вкладка «Обзор»
Сводка по всем организациям; если выбрать организацию в шапке, цифры сузятся до неё.
- Плитки — состояние сервера (Online и версия), число доменов, ящиков (активных из всех), ящиков с ролями и занятое место. Кнопка «Проверить подключение» проверяет, что биллинг достаёт до почтового сервера.
- По организациям — домены, ящики и хранилище каждой компании.
- Домены и доставляемость — по строке на домен: записи MX, SPF, DKIM, DMARC и итог «готов». Кнопка «Проверить DNS» перечитывает записи.
- Домен по умолчанию — подставляется при создании нового ящика.
- Быстрые действия — переходы в домены, ящики, страницу входа, DNS-записи и гостевые порталы.
Вкладка «Ящики»
Список всех ящиков сервера: кто владелец, сколько занято, что ящик обслуживает. Строки подгружаются AJAX-ом, поиск идёт по адресу и имени.
Что показывает таблица
| Колонка | Что в ней |
|---|---|
| Активность | Точка: зелёная — ящик принимает и отправляет письма, серая — выключен. Колонка без подписи, самая узкая, скрыть её нельзя. |
| Орг. | Организация домена — тот же бейдж, что в остальных списках биллинга (мультиорг). |
| Адрес. У системных ящиков — щит: их нельзя удалить, на них держатся выписки, рассылка и приём обращений. Скрыть колонку нельзя. | |
| Имя | Отображаемое имя — оно же уходит в подпись и в адресную книгу почты. |
| Квота | Занято из выделенного. По умолчанию колонка скрыта, значение видно в подсказке к счётчику писем. |
| Писем | Непрочитанных из всех. Клик открывает ящик в почте без ввода пароля. |
| Создан | Дата создания, полностью, без сокращения. |
| Чей | Сотрудник-владелец с аватаркой. У системного ящика владельца нет — прочерк. |
| Роли | Что ящик обслуживает: приём обращений, голосовая почта, рассылки, банковские выписки. Нажатие переключает роль. |
| Ред. | Меню строки: войти в ящик, редактировать, сменить пароль, включить или выключить, удалить. |
Роли ящика
Роль — это ответ на вопрос «что этот ящик делает для биллинга». Назначенная роль показана подписью, остальные остаются значком с подсказкой: в списке на сотню строк важно видеть включённое, а не перечень возможного.
flowchart LR BOX["Ящик
ask@вашдомен.ru"] BOX -->|Поддержка| TICKETS["Обращения
письмо → тикет"] BOX -->|Голосовая| VOICE["Голосовая почта
запись → заявка"] BOX -->|Рассылка| SEND["Уведомления и рассылки
отправитель писем"] BOX -->|Выписки| BANK["Банковские выписки
разбор вложений"] classDef on fill:#e8f7ef,stroke:#43b77a,color:#1b5e3f classDef box fill:#f4f6f8,stroke:#adb5bd,color:#212529 class BOX box class TICKETS,VOICE,SEND,BANK on
На телефоне
Сверху остаётся то, за чем в раздел заходят: выбор домена и «Добавить». Ниже — поиск, «Фильтры» и обновление в одну строку; фильтр по типу ящика открывается шторкой снизу. Таблица превращается в карточки — по строке на ящик, без горизонтальной прокрутки.
flowchart TB
subgraph D["Десктоп"]
T["Одна строка тулбара:
домен · тип ящика · поиск · колонки · добавить"]
TB["Таблица:
настраиваемые колонки, роли в строке"]
T --> TB
end
subgraph M["Телефон"]
P["Домен + Добавить"]
S["Поиск + Фильтры + Обновить"]
SH["Шторка: тип ящика"]
C["Карточки ящиков"]
P --> S --> C
S -.-> SH
end
D -.->|те же элементы, другая раскладка| M
Добавление ящика
Кнопка «Добавить ящик» открывает окно:
- Логин (до @) и Домен — домен выбирается списком, рядом число ящиков в нём: опечататься в адресе нельзя.
- Полное имя — уходит в подпись и в адресную книгу.
- Доставка почты — «Хранить в ящике» или «Пересылка» на другой адрес.
- Квота (МБ) — по умолчанию 1024. Пароль и Подтверждение обязательны, Активен — выключатель.
- Роль ящика (необязательно) — приём обращений, голосовая почта, отправка рассылок, банковские выписки. Ящику с ролью выдаётся служебный пароль и защита от удаления: на нём держится работа биллинга.
Вкладка «Домены»
Почтовые домены сервера и организация, которой принадлежит каждый. Организация домена определяет, чьи реквизиты и фирменный стиль получат ящики этого домена: подпись письма, цвета веб-почты, страницу входа.
При добавлении домена DNS-записи почты (MX, SPF, DKIM, DMARC) можно прописать одной кнопкой, если для организации настроен Cloudflare — см. «Домены и DNS».
Вкладка «Страница входа»
Как выглядит вход в веб-почту на адресе mail.<домен>: фон, картинка,
заголовок и значок вкладки. Слева — домены входа, справа — настройки выбранного и предпросмотр.
Страница входа не требует авторизации, поэтому оформление отдаётся публично и кэшируется.
REST API внутри биллинга
| Endpoint | Назначение |
|---|---|
GET /admin/settings/mailserver/api/status/ | Состояние API (status/version/quota/mailbox-counts) |
GET /admin/settings/mailserver/api/test-connection/ | Проверка соединения (с возвратом версии) |
GET /admin/settings/mailserver/api/dkim/ | DKIM/SPF/DMARC статусы по доменам |
GET /admin/settings/mailserver/api/domains/ | Список доменов с метаданными (mailboxes, max_mailboxes, aliases, active, is_default) — питает все <select> доменов |
GET /admin/settings/mailserver/api/mailbox/?domain=… | Список ящиков домена |
POST /admin/settings/mailserver/api/mailbox/create/ | Создание ящика |
POST /admin/settings/mailserver/api/mailbox/<email>/edit/ | Редактирование (имя/квота/active) |
POST /admin/settings/mailserver/api/mailbox/<email>/password/ | Смена пароля (с авто-sync в SystemSettings для системных) |
DELETE /admin/settings/mailserver/api/mailbox/<email>/ | Удаление (server-side защита системных) |
POST /admin/settings/mailserver/api/archive/save/ | Срок хранения писем на диске (дни) |
POST /admin/settings/mailserver/api/archive/run/ | Архивировать сейчас — все ящики или один (email) |
Все endpoint'ы за @user_passes_test(_is_superadmin) — только суперадмин. Каждая CRUD-операция пишет в AuditOperations с table_name='MAILSERVER'.
Как это работает: ящики, домены и роли лежат в базе биллинга, а почтовый сервер читает их оттуда напрямую. Действия, которым нужен сам сервер (перезапуск части почты, проверка DNS, архив писем), биллинг выполняет на хосте почты по SSH.
Веб-почта: календарь, контакты, брендинг
Сотрудники работают с почтой в браузере по адресу https://mail.<домен>/
(например mail.вашдомен.ru).
Кроме писем там есть календарь, задачи и адресная книга. Интерфейс подхватывает данные из
биллинга: имя сотрудника, его фото, подпись, контакты коллег и фирменные цвета организации,
которой принадлежит домен.
Войти можно двумя способами: обычным логином и паролем от биллинга либо из админки — раздел «Почтовый сервер» → вкладка «Ящики» → меню строки → «Войти в ящик» (вход без ввода пароля, каждый такой вход пишется в аудит; возможность отключается настройкой, см. «Настройки сервера»).
flowchart LR
U["Сотрудник
браузер"] --> HN["nginx хоста
mail.домен"]
HN --> MN["nginx почты
статика + брендинг"]
MN --> SG["SOGo
веб-интерфейс"]
SG --> DV["Dovecot
письма IMAP"]
SG --> PF["Postfix
отправка SMTP"]
SG --> PG[("Настройки SOGo
база sogo")]
SG --> BV[("Биллинг
ящики и контакты")]
MN -. "цвета, логотип" .-> API["API брендинга
биллинга"]
API --> ORG[("Карточка
организации")]
Брендинг по организации
Почта каждой организации выглядит по-своему: цвет интерфейса и логотип берутся из карточки организации, к которой привязан почтовый домен (раздел «Организации» → «Брендинг»). Ничего настраивать отдельно для почты не нужно — поменяли фирменный цвет в карточке, он появился и в почте.
Что окрашивается: верхняя панель и шапка списка, кнопка создания, ссылки, выделение выбранной папки, а в календаре — сегодняшний день, колонка текущего дня и события личного календаря. Логотип организации встаёт в левый край верхней панели.
sequenceDiagram
participant B as Браузер
participant N as nginx почты
participant A as API биллинга
participant O as Карточка организации
B->>N: открыть почту
N-->>B: страница SOGo + скрипт брендинга
B->>A: какой брендинг у почтового домена
A->>O: домен → организация
O-->>A: цвет, логотип, название
A-->>B: настройки брендинга
B->>B: перекрасить интерфейс, вставить логотип
Справка внутри почты
В правом верхнем углу, слева от кнопки выхода, есть значок «?» — он открывает этот раздел документации.
Имя, подпись и фото из профиля
Ящик сотрудника берёт данные из его профиля в биллинге: не нужно отдельно заполнять имя отправителя и вручную набирать подпись.
- Имя отправителя — ФИО из профиля. У ящиков со своим названием («Банковские выписки», «Поддержка СмИТ») название сохраняется: такие письма должны уходить от службы, а не от закреплённого за ящиком человека.
- Подпись — собирается автоматически: ФИО, роль, телефон, адрес ящика, сайт и реквизиты организации домена, плюс фото сотрудника.
- Фото — то же, что в профиле; видно и в интерфейсе почты, и в подписи у получателя письма.
Данные обновляются сами: при сохранении профиля, смене фото, создании ящика и смене
владельца. Разовый прогон по всем ящикам — команда
manage.py sync_mail_identities (ключ --dry-run покажет, что получится,
без записи).
flowchart TD
P["Профиль сотрудника
ФИО, телефон, фото"] --> S{"Синхронизация"}
O["Организация домена
название, сайт, телефон"] --> S
S --> N["Имя отправителя"]
S --> G["Подпись письма"]
S --> F["Фото в интерфейсе
и в подписи"]
S --> C["Личная книга и календарь
названы по организации"]
Адресная книга из биллинга
В почте есть общая книга «Контакты». Она только читается — данные ведутся в биллинге:
- Сотрудники — ФИО, рабочий адрес и телефон из профиля. Показываются всегда.
- Клиенты — имя, адрес и договор. По умолчанию скрыты: это персональные данные, а книга видна всем владельцам ящиков. Включается переключателем в «Настройках сервера».
Поиск работает и по имени, и по адресу — достаточно начать набирать фамилию в поле получателя, и адрес подставится сам. Личная книга и календарь названы по организации домена (например «Контакты СмИТ Поддержка») вместо стандартного «Personal Address Book».
Вкладка «Почта» в панели уведомлений
Чтобы прочитать письмо, не обязательно открывать веб-почту: в панели уведомлений биллинга (колокольчик в правом верхнем углу) есть вкладка «Почта». Там лента писем из всех ящиков сотрудника — с отправителем, адресом, папкой и временем («15 минут назад», «вчера»). Избранные письма закреплены сверху.
Письмо открывается в правой колонке. Оттуда же можно:
- ответить — поле с форматированием и вложениями, как в переписке чата;
- переслать письмо другому адресату;
- отметить избранным или непрочитанным, убрать в спам или корзину;
- скачать вложение и открыть письмо в самой почте.
Ответ уходит от ящика сотрудника, поэтому получатель отвечает ему, а не на общий адрес; ящик-отправитель выбирается списком, если ящиков несколько. Какие ящики показывать в ленте, каждый выбирает у себя в профиле; вкладку целиком можно выключить в «Настройках сервера».
Настройки сервера
Раздел «Почтовый сервер» → вкладка «Настройки сервера». Кроме технических параметров (имя сервера, размер письма, лимит отправки, relay, DKIM) там есть переключатели, которые влияют на повседневную работу:
| Настройка | Что делает |
|---|---|
| Сбор почтовых метрик, мин | Как часто пересчитывать занятое место и число писем для колонок «Квота» и «Писем». Обход идёт по файлам ящиков, поэтому чаще, чем раз в 10–15 минут, смысла нет; 0 — не собирать. |
| Разрешить персоналу создавать email | В профиле сотрудника появляется блок создания ящика в доступных ему доменах. |
| Показывать вкладку «Почта» в уведомлениях | Общий выключатель ленты писем в панели уведомлений. |
| Брать имя и подпись из профиля | Ящик подписывается ФИО владельца, в письма подставляется подпись с должностью, телефоном, фото и реквизитами организации. |
| Показывать клиентов в адресной книге | Добавляет клиентов в книгу «Контакты». Это персональные данные — по умолчанию выключено. |
| Разрешить вход в ящик без ввода пароля | Кнопка «Войти в ящик» открывает чужую почту от имени владельца. Каждый вход пишется в аудит; если такой доступ не нужен — выключите. |
Здоровье сервера и доставляемость
Вкладка «Настройки сервера» отвечает на два вопроса: работает ли почта прямо сейчас и дойдут ли письма до получателя, а не в спам.
Здоровье сервера — по строке на каждую часть почты. Все строки зелёные — почта принимается и отправляется. Очередь показывает, сколько писем ждёт отправки; норма — ноль. Кнопка с круговой стрелкой перезапускает одну упавшую часть, не трогая остальные.
flowchart LR NET["Интернет"] -->|SMTP| PF["Приём и отправка
postfix"] PF --> RS["Антиспам
rspamd"] RS --> DC["Хранение и чтение
dovecot"] DC --> SG["Веб-почта
sogo"] SG --> NG["Веб-почта, сайт
sogo-nginx"] NG -->|браузер| USER["Сотрудник"] RD["Кэш
redis"] --- RS RD --- SG BIL["Биллинг"] -->|IMAP: обращения, выписки| DC BIL -->|SMTP: уведомления| PF
Письма доходят, а не в спам — четыре проверки на каждый домен: подпись писем, разрешение на отправку, защита от подделки и запись приёма почты. Все зелёные означают, что письма с этого домена принимают Gmail, Mail.ru и Яндекс; красная — письма могут уходить в спам, и настраивать её нужно в разделе «Домены и DNS».
Резервный архив писем
Каждую ночь (02:30) ящики копируются в облако GCS зашифрованными архивами. Бакет публичный на чтение, поэтому архив шифруется ключом, который хранится только в настройках биллинга: по ссылке отдаётся нечитаемый набор байт. Отключить архив нельзя — это политика безопасности.
Поле «Переносить в архив письма старше N дней» задаёт, сколько писем держать на
диске сервера. Старшие письма уходят в облако и удаляются с диска; 0 — ничего не
удалять, только копировать.
В облаке у каждого ящика своя папка mail-archive/<домен>/<ящик>/:
| Файл | Что в нём | Сколько хранится |
|---|---|---|
ГГГГ-ММ-ДД.tar.gz.enc | Ночной снимок всего ящика | Последние 7 |
deleted-ГГГГ-ММ-ДД_ЧЧММСС.tar.gz.enc | Письма, удалённые в эту ночь с диска по сроку | Всегда — других копий этих писем нет |
flowchart TB
subgraph R1 [" "]
direction LR
BOX["Ящик на диске"] --> SNAP["Снимок ящика
дата.tar.gz.enc"]
SNAP --> KEEP["В облаке хранятся
7 последних снимков"]
end
subgraph R2 [" "]
direction LR
OLD["Письма старше
N дней"] --> PACK["Архив удаляемых
deleted-….tar.gz.enc"]
PACK --> CHECK{"Выгружен и
число писем сошлось?"}
CHECK -->|да| DEL["Удалить с диска
ровно эти письма"]
CHECK -->|нет| STAY["Письма остаются
на диске до след. ночи"]
end
R1 --> R2
style R1 fill:none,stroke:none
style R2 fill:none,stroke:none
.enc, расшифровать ключом архива и распаковать
в каталог ящика.
Письма не приходят: что проверить
Если в ящик перестали приходить письма извне, а отправка и веб-почта работают, идите по цепочке снаружи внутрь — каждое звено можно проверить отдельно.
flowchart TB
subgraph R1 [" "]
direction LR
S["Сервер
отправителя"] --> DNS["DNS: MX домена
→ mail.домен"]
DNS --> NET["Сеть: порт 25
открыт снаружи"]
end
subgraph R2 [" "]
direction LR
PF["Приём
postfix"] --> RS["Антиспам
rspamd"]
RS --> DV["Доставка в ящик
dovecot"]
end
R1 --> R2
style R1 fill:none,stroke:none
style R2 fill:none,stroke:none
- DNS. MX домена указывает на
mail.<домен>, а тот — на адрес почтового сервера. Проверка — «Проверить DNS» на вкладке «Обзор». - Порт 25 снаружи. Проверяйте внешним сервисом проверки портов, а не со своего компьютера: домашние провайдеры часто перехватывают исходящий порт 25, и проверка «проходит», хотя до сервера пакеты не доходят. Если снаружи 25 закрыт, а 587 и 993 открыты, порт режет сетевое оборудование перед сервером — сам сервер тут ни при чём. Фильтр бывает и выборочным: письма крупных почтовиков приходят, а проверка с хостинга и отдельные отправители — нет. Какие источники дошли, видно в журнале антиспама.
- Здоровье сервера. Строки «Приём и отправка», «Антиспам» и «Хранение и чтение» в «Настройках сервера» должны быть зелёными, очередь — около нуля.
- Сам ящик. Ящик активен, а у ящиков с ролью проверьте и выключатель в Поддержке — это разные флаги: один выключает разбор писем, другой — сам ящик.
Колонка «Писем» в списке ящиков
В списке ящиков рядом с квотой показывается «непрочитанных / всего». Клик по счётчику открывает ящик в почте. Пока сбор не отработал, вместо чисел стоит прочерк — это не то же самое, что «писем нет».
Домены и DNS (Cloudflare)
URL: /admin/settings/dns/ — управление DNS-зонами через Cloudflare API прямо из биллинга: зоны и записи (CRUD), сценарии в один клик и диагностика.
- Доступ — Global API Key или Scoped Token; ключи задаются глобально либо для каждой организации отдельно (мультиорг: у каждой компании свой аккаунт Cloudflare).
- 1-клик «Почта» — создаёт полный набор записей домена:
A(mail.домен),MX,SPF,DKIM,DMARC. - 1-клик «Поддомен» — добавляет
A/CNAMEна сервер (напримерlk.домен). - Диагностика — проверка почтовых записей домена и резолва хоста.
Автонастройка почтовых ящиков и DNS
Единый сервис провижинга (billing/services/mailbox_provisioning.py) создаёт почтовый ящик, прописывает DNS-записи и заполняет настройки подключения — одной кнопкой. Работает везде, где системе нужен ящик.
Что делает автонастройка
- Регистрирует домен в почтовом сервере (идемпотентно — повторный запуск безопасен).
- Создаёт ящик
<имя>@<домен>с сгенерированным паролем. Если ящик уже существует — переиспользует его пароль, ничего не сбрасывая. - Прописывает DNS-записи почты в Cloudflare:
A(mail.домен),MX,SPF,DKIM,DMARC. - Заполняет параметры подключения (SMTP и/или IMAP) в том модуле, откуда запущена.
Где доступна
| Раздел | Что настраивает | Проверка |
|---|---|---|
| Организации → вкладка «Почта (SMTP)» | ящик noreply@ + SMTP организации |
«Проверить» (коннект + авторизация), «Отправить тест-письмо» (HTML на ваш e-mail) |
| Поддержка → карточка ящика → вкладка «Почта» | ящик приёма обращений + IMAP и SMTP | «Проверить IMAP», «Отправить тест» |
| Банковские выписки | ящик bank@ + IMAP приёма выписок |
«Проверить» IMAP-подключение |
| Профиль сотрудника | личный ящик сотрудника | вход в веб-почту одной кнопкой |
| Домены и DNS | поддомен (A/CNAME) | проверка DNS-резолва хоста |
Ящик сотрудника и пересылка
В профиле (/admin/settings/profile/) сотрудник создаёт себе ящик, если включена настройка «Разрешить персоналу создавать email». Логин подставляется из имени пользователя, пароль генерируется автоматически — достаточно нажать «Создать ящик». Опционально указывается адрес пересылки: копии входящих уходят на внешний адрес, оригинал остаётся в ящике.
flowchart TB
subgraph R1 [" "]
direction LR
PR["Профиль сотрудника
«Создать ящик»"] --> CH{"Настройка
«Разрешить персоналу
создавать email»"}
CH -->|включена| NEW["Ящик логин@домен
1 на домен"]
end
subgraph R2 [" "]
direction LR
PW["Пароль = пароль
входа в биллинг"] --> BELL["Письма во вкладке
«Почта» уведомлений"]
BELL --> FW["Пересылка копий
на внешний адрес"]
end
R1 --> R2
style R1 fill:none,stroke:none
style R2 fill:none,stroke:none
admin, info, postmaster и другие зарезервированные логины; лимит — один ящик на домен.