Настройка DNS
От пустого домена до письма со статусом DELIVERED. Все шаги — в дашборде на странице Организация → Домены.
1. Добавить домен
- Дашборд
- API
Организация → Домены → Добавить домен, введите имя (example.ru или mail.example.ru) и нажмите Добавить. Страница покажет три DNS-записи, сгенерированные специально для вашего домена.
POST /v1/organizations/{organization_id}/domains
Authorization: Bearer <session_token>
Content-Type: application/json
{ "name": "mail.example.ru" }
В ответе — поле verification_records со SPF, DKIM и DMARC. См. API доменов →.
DKIM-ключ уникален для каждого домена и проекта. Используйте те значения, которые показал дашборд.
Пример того, как они выглядят:
| Тип | Имя | Значение | Назначение |
|---|---|---|---|
TXT | mail.example.ru | v=spf1 include:spf.mailinfra.ru ~all | SPF |
TXT | mi1._domainkey.mail.example.ru | v=DKIM1; k=rsa; p=MIIBIjANBgkq... | DKIM (публичный ключ) |
TXT | _dmarc.mail.example.ru | v=DMARC1; p=none; rua=mailto:dmarc@mailinfra.ru | DMARC-политика |
2. Выставить записи у DNS-провайдера
- Cloudflare
- Reg.ru / Beget / TimeWeb
- Яндекс 360
- DNS → Records → Add record — три раза подряд для SPF, DKIM, DMARC.
- Тип
TXT, имя и значение — как показал дашборд. - Отключите Proxy (оранжевая тучка → серая) для всех трёх записей. Cloudflare proxy ломает TXT-проверки.
В разделе DNS-записи добавьте три записи типа TXT. В поле «поддомен/хост» укажите имя без основной части домена. Например, для mi1._domainkey.mail.example.ru хост будет mi1._domainkey.mail.
Домены → Ваш домен → DNS-записи → Добавить запись. Для каждой из трёх записей выберите TXT и подставьте имя и значение из дашборда.
Проверка локально
dig TXT mail.example.ru +short
dig TXT mi1._domainkey.mail.example.ru +short
dig TXT _dmarc.mail.example.ru +short
Или dnschecker.org — увидит запись из разных точек мира.
DNS-изменения распространяются от нескольких минут до 24 часов в зависимости от TTL и провайдера. Обычно 15–60 минут.
3. Запустить верификацию
- Дашборд
- API
Нажмите Верифицировать напротив домена.
POST /v1/organizations/{organization_id}/domains/{domain_id}/verify
Authorization: Bearer <session_token>
Идемпотентно — можно повторять, пока DNS распространяется.
MailInfra проверит все три записи и переведёт домен в VERIFIED или FAILED с детализацией по каждой записи:
{
"checks": {
"spf": { "pass": true, "detail": "SPF record found with required include" },
"dkim": { "pass": true, "detail": "DKIM public key matches expected value" },
"dmarc": { "pass": false, "detail": "DMARC TXT record not found" }
}
}
Исправьте проблемные записи и нажмите «Верифицировать» ещё раз — это идемпотентно.
4. Привязать к проекту
- Дашборд
- API
Проект → Домены → Привязать домен и выберите верифицированный домен.
POST /v1/organizations/{organization_id}/projects/{project_id}/domains
Authorization: Bearer <session_token>
Content-Type: application/json
{ "domain_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
После привязки ключи проекта могут отправлять письма с адресов этого домена.
SPF: что делать, если домен уже используется
Если на домене уже есть SPF (Google Workspace, Microsoft 365, ваш SMTP-релей) — нельзя добавлять вторую запись. Это сломает доставку. Объедините include в одной строке:
# Было:
v=spf1 include:_spf.google.com ~all
# Стало:
v=spf1 include:spf.mailinfra.ru include:_spf.google.com ~all
Частые проблемы
| Проблема | Что проверить |
|---|---|
spf.pass: false | SPF-запись одна, в ней есть include:spf.mailinfra.ru |
dkim.pass: false | Имя записи начинается с mi1._domainkey., значение скопировано целиком |
dmarc.pass: false | Есть TXT-запись _dmarc.<домен> со значением как минимум v=DMARC1; p=none |
Домен VERIFIED, но письмо не уходит | Домен привязан к проекту этого ключа? |
| Запись «не видна» сразу | Подождите TTL (15–60 мин), проверьте через dig |