Привет, Хабр! Я Сергей, на данный момент — безработный (читай свободный), простой фрилансер по всякого разного рода задачам, связанных с тем, что может поддаться логике смарт камня внутри вашего ПК.
На одном из последних запросов я получил оффер («предложение» — ох уж сколько уже этих модных слов) — Установить Hestia, Roundcube, настроить почту. Казалось бы, нет ничего проще — пишем промт в ИИ (chatGPT, моя супруга ласково его называет по свойски «спроси у гопоты») и получай ответы. Но не тут то было...

Я понимаю, что эту статью могут читать и люди совсем не технического воспитания, а например, маркетолог, который получил эту статью в виде рекомендации от Гугла, когда ввел слово «рекламная рассылка». В общем те, кто уже делает рекламу, контент, SMM, и хотят «дожимать» аудиторию через письма. Вот для них я постараюсь все объяснить так, что бы они могли сами все повторить и никого не искать на фрилансе. Лучше читайте тут чем в ИИ, тут будет проще.
Итак, для начала нужно хоть немного познакомиться с те��рией доставки писем. Постараюсь описать максимально доступно. Изложим то, что имеем:
Ваш vps (дропплет) с Ubuntu на борту
Ваше DNS имя. К примеру domain.com
Hestia - это панель управления (настроек), что бы не копаться в бездушном терминале и ничего там руками не настраивать.
Roundcube - это «Gmail-подобный интерфейс», который ставится на твой сервер (читай vps) и даёт доступ к почте через браузер.
Mailwizz - программа для автоматизации рассылок.
Ваше желание сэкономить несколько тыщ рублей на всяких там SaaS (готовых) - решениях.
Теперь немного теории. Те кто в курсе, могут пропустить.
VPS (виртуальная машина) — арендуем у кого‑нибудь. Тут хостерам рекламу делать не буду, но в сети не мало предложений. После аренды вам должны дать доступ к ssh — и вот там будет основная магия деторождения вашего почтового монстра.
DNS — тут немного посложнее. Это то место где вы арендуете название. Ваше доменное имя. Вот это все то, что в почте идет после @. Чтобы ваши письма не улетали в тартарары, надо всем уважаемым людям (Google Yandex и так далее) рассказать кто вы и где вы. Для этого нужно настроить в DNS несколько записей. Это таблица где вам нужно создать:
«A» запись, и прописать на какой ip адрес будет смотреть ваше доменное имя (ip адрес вы получите от вашего арендодателя vps).
MX запись это помогает всем понимать, что по этому адресу вообще можно слать почту. Выглядит она примерно так - domain.com. MX 10 mail.domain.com. Это нужно для того, что бы разделить “человеческое имя домена” (domain.com) и реальный почтовый сервер (mail.domain.com). Если что, то можно иметь несколько почтовых серверов на одном адресе. Ну вдруг, кому потом в аренду сдадите
SPF (тип TXT) кто имеет право отправлять почту от вашего имени. Если нет SPF, то вас 99 процентов завернут, и письма не дойдут до адресата или в лучшем случае попадут в спам. Это обязательно нужно сделать. Выглядит примерно так: domain.com. TXT "v=spf1 mx ip4:203.0.113.10 include:_spf.google.com ~all" вот тут важно - кавычки не пишем! Тут просто для понимания, что будет стоять в значении. По сути, отправитель соединяется с сервером получателя и говорит: “я шлю письмо от user@domain.com, мой IP — 64.227.44.25”. Зачем это нужно? Если бы не было такой штуки, то каждый мог бы слать письма от сбербанка так как SMTP-протокол не проверяет это сам по себе. Поэтому почты проверяют реально ли у user@domain.com ip адрес вот такой.
DKIM (тип TXT) - это уже тут посерьезнее. Это по сути подпись - только крипто. Нужно для того же самого что и SPF и гарантирует, что письмо точно отправлено с сервера, который владеет закрытым ключом для данного домена.
Помогает отличать “реальные” письма домена от подделок (спуфинга).DMARC (тип TXT) - тут по сути это настройка, которая говорит, что делать с письмами, не прошедшими SPF/DKIM: пропускать, карантинить или отклонять. Сказать, что делать с этими письмами, которые не прошли проверку на подделку. Можно написать, что ничего делать не нужно ,и вот как примерно это будет выглядеть - v=DMARC1; p=none; fo=1; adkim=s; aspf=s.
PTR - это уже не в ваших DNS записях. Тут сам провайдер подтверждает, что у него есть почтовый сервер и он за него несет ответственность. Тут нужно смотреть настройки у вашего сервиса, где вы припарковали ваше доменное имя.
Все, что перечислил можно создать сразу, еще до того как приступим к установке программного обеспечения. Кроме DKIM записи, так как значение криптографического ключа мы получим только по завершению всех процедур.
Итак, теперь можно делать все по инструкции. Кратко поясняю - что за что отвечает.
логинимся
ssh root@IP_СЕРВЕРА
обновляемся
apt update && apt upgrade -y
Задаём hostname (для красоты, хотя какая там красота в черном терминале):
hostnamectl set-hostname название_вашего_домена
Установка Hestia CP с нужными компонентами
Скачаем инсталлер:
входим в папку рута. Чтобы точно знали, где находимся
cd /root
качаем дистрибутив
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
разрешаем его запустить
chmod +x hst-install.sh
Дальше два варианта. Либо через интерактивный установщик будем отвечать на вопросы. Типа как в Windows где «Далее» «Далее» Но тогда ничего не понятно, и надо со справочником посидеть, либо делайте как я.
- bash hst-install.sh \
- -y no \
- -s название почтовогосервера \
- -e почта \
- -u пользователь \
- -p ‘пароль’ \
- -l ru \
- -r 8083 \
- -a no \
- -w yes \
- -o yes \
- -k no \
- -m yes \
- -g no \
- -x yes \
- -z yes \
- -c no \
- -t yes \
- -i yes \
- -b yes \
- -fКратко по смыслу, на что обратить внимание:
-s это, что вы назвали у себя почтовым сервером. mail.domain.com.
-e почта для примера admin@domain.com.
-u это супер пользователь, который будет там самым главным босом и управлять другими пользователями. Любое имя в латинице, НО если вы хотите назвать его admin - то имейте в виду, что в Ubuntu, как правило, уже есть группа admin. Ее можно безболезненно удалить, если к ней не привязаны другие пользователи.
Делается это командой
groupdel admin.
Будем считать, что везде в дальнейшем будет создан пользоват��ль admin. Перезагружаемся обязательно, иначе после не получить DKIM запись.
Вот и все. Вы уже на корабле. Далее идем по адресу https://mail.domain.com:8083/ авторизируемся. Логин Пароль мы вводили на начальном этапе установки. И должны лицезреть симпатичную панель под названием Hestia. Это лишь панель управления настройками и рассказывать много про нее нет смысла в контексте этой статьи. Нам главное сосредоточиться на отправке почты.

Кстати, кто переживает за ssl сертификаты. Это вот та самая буква на конце https. По умолчанию, сертификат будет не валидный, но это не значит, что это как то мешает работе почтовика. Можно не обращать на это внимание.
Далее можно работать под admin, либо создать отдельного юзера (например serg) и дальше всё делать от него. Но Hestia очень нервничает, когда все делают от имени суперпользователя, типа не барское это дело, почту настраивать и обязательно ругнется. Add Web Domain It is strongly advised to create a standard user account before adding a web domain to the server due to the increased privileges the admin account possesses and potential security risks. Не пугайтесь. Можете продолжать и под admin.
Добавляем web-домен domain.com При создании нового домена там могут быть галочки (от года к году в Hestia что-то меняется, ребята тоже не сидят на месте) Отметим все, что есть. Главное, mail что бы было. Сохраняемся. И по идее мы подняли Roundcube (почтовый клиент ради которого все). Но где его найти? И вот где меня свел с ума ИИ и его советы и вообще интернет. Раньше в почтовый клиент можно было зайти через https://domain.com /webmail. И ИИ советовал искать только там. Видимо живет старой информацией. Я же его нашел по адресу https://webmail.domain.com. Так что, порадовался я, не везде эти ваши ИИ могут заменить человека. По этому адресу должно отдавать форму логина Roundcube.
Но у нас все еще нет почты и пароля, чтобы зайти в Roundcube. Где взять? Идем снова в Hestia и создаем учетку для Roundcube. MAIL → domain.com → Добавить аккаунт
Имя ящика: к примеру (mail) Знак @ и все, что после - писать не нужно сюда
Адрес получится: тут уже пишем полностью mail@domail.com.
Задаем пароль
Проверить можно сразу через Roundcube. Заходим сюда http://webmail.domain.com/ и авторизируемся.
Если все ок, то осталось сгенерировать DKIM подпись (выше о ней упоминал). Как это делается? Во-первых, при создании домена, должна быть включена поддержка DNS и DKIM. Снова идем в Hestia. Тут вам нужно поискать на вкладке домена и Mail у вашего домена, что то похожее.
Далее в терминале бьем эту команду
v-list-mail-domain-dkim admin domain.com
и получаем сертификат. Если пишет что команда не найдена, значит вы еще не перезагружались. Если все ок, сертификат увидели, то уже хорошо и осталось только получить DKIM, запись которую мы отправим в DNS.
снова в терминале:
v-list-mail-domain-dkim-dns admin domain.com.
Бездумно не вводим, потому что, здесь есть слово admin. Если ваш пользователь называется по другому, то запускаем команду учитывая его имя. Вам должна прийти строка вида domainkey 3600 IN TXT "t=y; o=~;"mail.domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhki...
Опять же кавычки не переносим в DNS. Это просто пишется для того, чтобы отделить одно от другого.
Далее заходим снова в почтовый клиент по адресу http://webmail.domain.com/ и пробуем отправить письмо. Если вам пришел ответ с ошибкой - значит ваше письмо завернули и как правило, вам скажут, где вы там накосячили. Обычно это проблема с SPF DKIM или PTR записями. Как их настраивать - обсудили выше. Обязательно обращаем внимание на кавычки - их быть не должно.


Письмо ушло и все ок, и даже не попало в спам - круто. Но рано радоваться, нужно еще убедиться, что вы можете не только отправлять, но и получать письма в ответ. Тут уже вам никто не скажет, почему письма до вас не доходят. Exim, на чем основан почтовый клиент, по умолчанию идет с фильтрами и режет входящие. Это понять можно из логов которые находятся обычно тут /var/log/exim4/mainlog.

Осталось MailWizz EMA. На самом деле, вот тут как раз уже легко даст необходимые инструкции ваш ИИ. Главное помнить, что эта штука платная, и нужно будет разово купить лицензию. Лиценция будет привязана к вашему домену и к вашему ip адресу при покупке. В остальном настраивается все не хитро, и вы можете организовать рассылку на вашем личном сервере.
В целом, связка Hestia, Roundcube, MailWizz EMA - дает вам прекрасный инструмент для ваших рассылок. Вы можете массово отправлять email-рассылки, управлять базой подписчиков, делать автоматические цепочки писем и генерировать формы подписки. И все это сбережет ваши 33 копейки, которые вы будете платить за подписку готовых SaaS решений. Нужно просто не бояться разбираться во всем этом.
И в качестве бонуса:
Как проверить, что TXT DKIM реально виден в мире
dig +short TXT mail._domainkey.domain.com
должно вернуть что то вроде "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFA..."
Можно спросить сразу у Гугла, что видит он
dig +short TXT mail._domainkey.getoutlines2.com @8.8.8.8
Всем участникам Хабра много лучиков добра и ясной погоды. Надеюсь, еще пообщаемся.
P.S.
Читал тут в Хабре под разными постами — иногда сложные комментарии профессионалов, которые «в теме» и для них скажу: этот пост не ultimate‑гайд по продакшен‑почте, а описание моего реального опыта поднятия Hestia + Roundcube + MailWizz на Ubuntu для небольшого проекта. Буду рад замечаниям и улучшениям.
