#Что означает ошибка
Письма в спам
Почтовые сервисы (Gmail, Яндекс, Mail.ru) проверяют, действительно ли ваш сервер вправе отправлять письма от имени домена. Для этого используются три механизма: SPF (кто может отправлять), DKIM (цифровая подпись письма), DMARC (политика, что делать, если проверка не пройдена). Если их нет или они настроены неверно, письмо попадает в «Спам» или отклоняется.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет записи SPFПолучатель не знает, какие серверы могут отправлять почту от вашего домена. | В заголовках письма spf=none или spf=fail. | Создайте TXT-запись v=spf1 ... -all с вашими отправителями. |
| Нет подписи DKIMПисьма не подписаны, и содержимое могло быть изменено. | dkim=none или dkim=fail в заголовках. | Включите DKIM в почтовом сервисе и добавьте публичный ключ в DNS. |
| Не настроен DMARCБез политики Gmail и Яндекс сильнее подозревают письма. | Нет записи _dmarc.ваш-домен. | Добавьте TXT v=DMARC1; p=none; rua=mailto:... и ужесточайте политику постепенно. |
| Плохая репутация IP или рассылка с хостингаIP внесён в чёрные списки, либо используется общий IP хостинга. | IP есть на проверке в . | Отправляйте через SMTP авторизованного сервиса или выделенный IP. |
#Пошаговое решение
- Посмотрите заголовки письмаОтправьте тестовое письмо на контролируемый ящик и откройте «Показать оригинал»/«Показать исходный текст» для получения полных заголовков. Найдите
Authentication-Results, домен From, Return-Path, IP отправителя и результатыspf,dkim,dmarc; папка «Спам» сама по себе не указывает, какой из механизмов сломан. - Настройте SPFУ DNS-провайдера посмотрите все TXT с
v=spf1для домена в Return-Path, затем составьте одну политику SPF, разрешающую только реальные серверы отправки. Не объединяйте механически несколько записей и не ставьте+all; после публикации проверьте по заголовку тестового письма результатspf=pass. - Включите DKIMВ панели почтового провайдера включите DKIM, скопируйте точное имя селектора и выдаваемую TXT/CNAME запись в DNS. Отправьте новое письмо после публикации и проверьте
dkim=passв заголовках; наличие записи без подписи не поможет доставке. - Добавьте DMARCВ DNS создайте запись
_dmarcс мониторинговой политикойp=noneи адресом отчётов при наличии соответствующей системы сбора; DMARC требует совпадения организационного домена From с SPF или DKIM. После анализа отчётов согласуйте ужесточение до quarantine/reject, чтобы не блокировать легитимные рассылки. - Проверьте результатПроверьте полный результат SPF/DKIM/DMARC, PTR обратного DNS и адрес отправки. Ошибки репутации IP или содержание письма могут вызывать спам даже при трёх
pass. Не меняйте DNS дальше, если аутентификация уже проходит; анализируйте репутацию и жалобы. - Отправляйте через SMTP, а не
mail()Для сайтов WordPress/phpBB/Битрикс настройте отправку через авторизованный SMTP почтового провайдера (обычно 587 STARTTLS или 465 TLS) вместо неконтролируемогоmail(), если это соответствует инфраструктуре. Введите данные через защищённую панель, не храните пароль прямо в публичном скрипте, затем отправьте тест и просмотрите журнал.
#Проверка DNS-записей
После добавления записей подождите от 15 минут до нескольких часов, затем проверьте их командами. Если запись не видна, возможно, вы добавили её не в той зоне (у регистратора вместо хостинга) — смотрите, на каких NS-серверах находится домен.
dig +short TXT example.comdig +short TXT _dmarc.example.comdig +short TXT selector._domainkey.example.com