Если ты запускаешь сервис на своём домене, почти сразу появляется две потребности. Первая — чтобы письма от сайта доходили стабильно: подтверждение регистрации, сброс пароля, уведомления. Вторая — чтобы были “нормальные” ящики для команды: support@, sales@, admin@ с IMAP/SMTP, как в любой корпоративной почте. И вот здесь многие путают роли: Mailgun отлично решает отправку через API, но не предназначен для классических почтовых ящиков “создал и читаешь по IMAP”.

Нужен VPS/VDS?
Запусти сервер за минуту и
получи поддержку 24/7
Заказать VPS

Оптимальная схема простая: приём почты и ящики — на своём сервере (FastPanel), а транзакционную отправку — через Mailgun API. При этом ты можешь дополнительно оставить возможность отправлять письма напрямую с сервера, но Gmail будет требовать аутентификацию. Если её нет — получишь ошибку вроде:

550-5.7.26 sender is unauthenticated… DKIM did not pass, SPF did not pass

Это происходит, когда письмо уходит с IP сервера, а SPF разрешает только Mailgun (или вообще не разрешает этот IP), а DKIM подписи у письма нет.


Шаг 1. Что должно быть на сервере (FastPanel)

FastPanel обычно уже содержит почтовый стек, но важно, чтобы было включено/настроено:

  • Postfix (SMTP/MTA) — отправка и приём

  • Dovecot (IMAP) — доступ к ящикам

  • DKIM-подпись (через OpenDKIM или модуль панели)

  • TLS-сертификат (Let’s Encrypt) на mail.<домен>

Практический момент: для клиентов используй 587 (Submission) и 993 (IMAPS). Порт 25 оставляй для межсерверной доставки.


Шаг 2. DNS: как сделать, чтобы не было конфликтов

Золотое правило:

  • SPF в домене должен быть один (одна TXT-запись на @)

  • DMARC должен быть один (одна TXT-запись на _dmarc)

  • DKIM может быть несколько (это нормально)

2.1 A и MX — чтобы почта приходила на твой сервер

  1. A-запись:

  • A mail → 95.216.1.58

  1. MX-запись:

  • MX @ → mail.uhost.online. (prio 10)

Если у тебя стоят MX на mxa/mxb.mailgun.org, входящая почта будет идти в Mailgun. Для ящиков на сервере MX должен указывать на mail.domain.

2.2 SPF — разрешаем и сервер, и Mailgun

Одна TXT-запись на корне домена:

  • TXT @: v=spf1 ip4:95.216.1.58 include:mailgun.org ~all

Вот почему это важно: когда письмо отправляется напрямую с твоего сервера, Gmail проверяет SPF и видит — “IP разрешён”, значит отправитель аутентифицирован.

2.3 DKIM — два комплекта (сервер и Mailgun)

DKIM — это не “просто запись в DNS”. Это механизм: письмо должно быть подписано приватным ключом на стороне отправителя. Поэтому:

DKIM для сервера: создаёшь селектор s1:

  • TXT s1._domainkey: v=DKIM1; k=rsa; p=

И включаешь DKIM в FastPanel/OpenDKIM так, чтобы исходящие письма реально подписывались (в заголовках появится DKIM-Signature).

DKIM для Mailgun: в панели Mailgun домен выдаёт свои DKIM-записи (часто 2 шт.). Их добавляешь как есть — это подпись для писем, которые отправляет Mailgun.

2.4 DMARC — один, и лучше начать мягко

На старте:

  • TXT _dmarc: v=DMARC1; p=none; adkim=s; aspf=s; pct=100; rua=mailto:dmarc@uhost.online; fo=1

Когда всё стабильно проходит — меняешь на quarantine, потом reject.


Шаг 3. PTR (Reverse DNS) — иначе “прямая” отправка будет страдать

На стороне провайдера выставь:

  • PTR 95.216.1.58 → mail.uhost.online

Это сильно влияет на доставляемость при отправке напрямую с сервера.


Шаг 4. Создаём ящики в FastPanel

Дальше всё просто: добавляешь почтовый домен uhost.online, создаёшь support@, sales@ и подключаешься по IMAP/SMTP к mail.uhost.online.


Шаг 5. Отправляем с сайта через Mailgun API

Транзакционные письма лучше отправлять не через mail() и не напрямую через порт 25, а через Mailgun API. Пример:

 
curl -s --user 'api:' \ https://api.eu.mailgun.net/v3/uhost.online/messages \ -F from='UHost ' \ -F to='gtasity3@gmail.com' \ -F subject='Тест Mailgun API' \ -F text='Если ты читаешь это — отправка через API работает.'

Шаг 6. Проверяем через Gmail “Показать оригинал”

Ищи:

  • SPF=PASS

  • DKIM=PASS

  • DMARC=PASS (когда всё настроено)

Если что-то не проходит — почти всегда причина в дублях SPF/DMARC, неверном MX или том, что DKIM на сервере “в DNS есть, а фактически письма не подписываются”.


Итог: ящики живут на сервере (FastPanel), сайт отправляет транзакционные письма через Mailgun API, а Gmail больше не блокирует тебя по “unauthenticated sender”.

Нужен выделенный сервер?
Мощные конфигурации в Hetzner и
быстрый запуск под ключ
Выбрать сервер