Start typing to search across invoices, services, domains, tickets, and more...
Надёжный собственный почтовый сервер для бизнеса или транзакционных писем держится на трёх вещах: выделенном IP с совпадающей записью rDNS/PTR, правильных SPF, DKIM и DMARC и медленном, честном прогреве — при условии, что вы заранее подтвердили у провайдера доступность исходящего порта 25. Серверы IMIDC в Гонконге, Токио (Япония) и Лос-Анджелесе (США) поставляются с выделенными IPv4, а rDNS настраивается по тикету, так что можно запустить Mailcow для корпоративных ящиков или Postal для писем из приложений.
Mailcow — когда людям нужны почтовые ящики; Postal — когда приложениям нужно отправлять чеки, сброс пароля и уведомления.
| Параметр | Mailcow (dockerized) | Postal |
|---|---|---|
| Назначение | Корпоративные ящики, календари, веб-почта | Исходящая транзакционная почта приложений |
| Компоненты | Postfix, Dovecot, Rspamd, SOGo, ClamAV | SMTP-сервер, HTTP API, трекинг открытий/кликов, вебхуки |
| Входящая почта | Полноценные ящики IMAP/POP3 | Маршрутизация на HTTP-эндпоинты или другие серверы |
| Ресурсы | Около 6 ГБ RAM плюс swap по документации проекта | Несколько ГБ RAM плюс MariaDB |
| Продукт IMIDC | VPS или начальный выделенный сервер | VPS при малом объёме, выделенный — при большом |
Многие используют оба: Mailcow на одном IP для сотрудников, Postal — на другом, чтобы проблемы с рассылками приложения не портили доставляемость служебной почты.
До установки проверьте три условия, которые никакое ПО потом не исправит.
# 1. is outbound port 25 open? (should print "succeeded"/"open")
nc -vz -w 5 gmail-smtp-in.l.google.com 25
# 2. does the PTR match your mail hostname?
dig -x 203.0.113.25 +short # expect: mail.example.com.
dig +short mail.example.com A # expect: 203.0.113.25
# 3. set the server hostname to the same FQDN
sudo hostnamectl set-hostname mail.example.com
У обоих проектов есть официальные установщики на Docker; сначала установите Docker и Docker Compose.
Mailcow для корпоративных ящиков:
# mailcow: full business mailbox suite (SMTP, IMAP, webmail, antispam)
cd /opt
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
./generate_config.sh # enter mail.example.com and your time zone
docker compose pull
docker compose up -d
# then log in at https://mail.example.com, add domain + mailboxes,
# and copy the DKIM public key from Configuration > ARC/DKIM keys
Postal для транзакционных писем:
# Postal: transactional / app mail with an HTTP API, webhooks and tracking
git clone https://github.com/postalserver/install /opt/postal/install
sudo ln -s /opt/postal/install/bin/postal /usr/bin/postal
docker run -d --name postal-mariadb -p 127.0.0.1:3306:3306 --restart always \
-e MARIADB_DATABASE=postal -e MARIADB_ROOT_PASSWORD=change-me mariadb
postal bootstrap postal.example.com
# edit /opt/postal/config/postal.yml (DB password, DNS names), then:
postal initialize
postal make-user
postal start
Установщик Postal использует Caddy для HTTPS веб-интерфейса; Mailcow сам получает сертификаты Let's Encrypt. Открывайте только нужные порты: 25, 465/587 для отправки, 993 для IMAPS и 443 для веб-интерфейса.
Записи аутентификации сообщают Gmail, Outlook и Yahoo, что ваш сервер вправе отправлять почту от имени домена и что письма не изменены.
; DNS zone for example.com (adapt names, IP and DKIM key)
mail.example.com. A 203.0.113.25
example.com. MX 10 mail.example.com.
example.com. TXT "v=spf1 mx ip4:203.0.113.25 ~all"
dkim._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq...IDAQAB"
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:[email protected]; adkim=s; aspf=s"
_mta-sts.example.com. TXT "v=STSv1; id=20261008"
_smtp._tls.example.com. TXT "v=TLSRPTv1; rua=mailto:[email protected]"
mta-sts.example.com. A 203.0.113.25
p=none для сбора отчётов, затем переходите к quarantine и reject, когда все легитимные источники проходят проверку.# served at https://mta-sts.example.com/.well-known/mta-sts.txt
version: STSv1
mode: testing
mx: mail.example.com
max_age: 86400
Запускайте MTA-STS в режиме testing, через несколько чистых недель переключайте на enforce и меняйте id при каждом изменении политики. Проверьте всё:
dig +short TXT example.com | grep spf1
dig +short TXT dkim._domainkey.example.com
dig +short TXT _dmarc.example.com
curl -s https://mta-sts.example.com/.well-known/mta-sts.txt
# TLS on submission and inbound SMTP
openssl s_client -starttls smtp -connect mail.example.com:25 -servername mail.example.com </dev/null | head -5
Крупные почтовые сервисы теперь ожидают выравнивания SPF, DKIM и DMARC, низкого уровня жалоб, а для маркетинговых писем — отписки в один клик; считайте это минимумом.
У нового IP нет репутации, поэтому увеличивайте объём постепенно и пишите только активным получателям, давшим согласие.
| Период | Писем в день (на каждого провайдера) | Что отправлять | За чем следить |
|---|---|---|---|
| Дни 1–3 | 20–50 | Внутренние и знакомые адресаты, которые ответят | Попадание во «Входящие» или «Спам» |
| Дни 4–7 | 50–200 | Транзакционные письма, самые активные клиенты | Отказы ниже 2% |
| Неделя 2 | 200–1 000 | Обычный транзакционный поток | Жалобы, Postmaster Tools |
| Недели 3–4 | 1 000–5 000 | Нормальный рабочий объём | Отсрочки (4xx), блок-листы |
| После 4-й недели | Рост на 20–30% в неделю при чистых метриках | Стабильный объём | Всё перечисленное |
Это консервативные ориентиры, а не гарантия результата. При отсрочках или попадании в спам держите объём на месте, пока ситуация не нормализуется. Зарегистрируйтесь в Google Postmaster Tools и Microsoft SNDS для контроля репутации.
Если заметить листинг или зависшую очередь в течение нескольких часов, маленькая проблема не превратится в неделю потерянной почты.
#!/bin/sh
# rbl-check.sh 203.0.113.25 - run daily from cron, alert on any hit
IP="$1"; REV=$(echo "$IP" | awk -F. '{print $4"."$3"."$2"."$1}')
for BL in zen.spamhaus.org b.barracudacentral.org bl.spamcop.net; do
if dig +short "$REV.$BL" A | grep -q '^127\.'; then
echo "LISTED on $BL"
else
echo "clean $BL"
fi
done
# note: Spamhaus refuses queries via large public resolvers; use your own resolver
postqueue -p в контейнере Postfix у Mailcow) и журналом сообщений Postal.Размещайте почтовый сервер ближе к большинству получателей и там, где IP выглядит «местным».
| Площадка IMIDC | Лучше всего для получателей в | Примечания |
|---|---|---|
| Гонконг | Гонконге, Большом Китае, Юго-Восточной Азии | CN2 GIA в материковый Китай; VPS от $18/мес, выделенный от $139/мес |
| Токио, Япония | Японии | Нативный японский IP; VPS от $28/мес |
| Лос-Анджелес, США | Северной Америке и у пользователей Gmail/Outlook по всему миру | Нативный IP США; выделенный от $499/мес |
Расположение влияет на задержки и «локальность» IP, но для попадания во «Входящие» гораздо важнее репутация, аутентификация и качество базы.
Выбирайте по числу ящиков и дневному объёму и разделяйте потоки почты по разным IP.
Дополнительные IP и индивидуальные конфигурации — через отдел продаж IMIDC; существующий почтовый сервер можно перенести с помощью бесплатной миграции IMIDC.
IMIDC предлагает VPS и выделенные серверы в Гонконге и Токио с выделенными IP и записями PTR, настраиваемыми по тикету. Перед покупкой уточните у поддержки IMIDC политику исходящего порта 25 для выбранного тарифа.
Обычные причины — отсутствующие или невыровненные SPF, DKIM или DMARC, PTR не совпадает с именем хоста, новый IP отправляет слишком много и слишком быстро, либо IP в блок-листе. Сначала исправьте аутентификацию, затем прогревайте медленно.
Mailcow — для людей, которым нужны ящики и веб-почта; Postal — для приложений, отправляющих чеки и уведомления через API. Многие компании используют оба на разных IP.
Незапрошенные массовые рассылки и спам запрещены. Предполагаемое использование — деловая и транзакционная почта умеренного объёма получателям, давшим согласие; сообщите поддержке ваш объём до начала работы.
Готовы запустить почтовый сервер? Выберите VPS в Гонконге, VPS в Японии или выделенный сервер в Лос-Анджелесе и откройте тикет, чтобы подтвердить порт 25 и настроить rDNS, либо свяжитесь с отделом продаж насчёт дополнительных IP.