Почему письма с сайта попадают в спам
Форма на сайте работает, письмо уходит, но менеджер его не видит: оно в спаме или отброшено сервером. Это не «почта глючит», а конкретные технические причины, и почти все чинятся за вечер записями в DNS.
Как почтовый сервер решает, спам или нет
Получатель — Яндекс, Mail.ru, Gmail — задаёт письму три вопроса. Разрешил ли владелец домена этому серверу отправлять от его имени (SPF)? Подписано ли письмо ключом домена и не подменено ли по дороге (DKIM)? Что делать, если проверки не прошли, и куда сообщить (DMARC)? Если ответов нет, письмо ничем не отличается от подделки, и его кладут в спам или отбрасывают. Дальше смотрят на репутацию IP-адреса и содержание.
Семь причин, по которым письма с сайта уходят в спам
1. Нет SPF-записи
Самая частая причина. Домен не объявил, каким серверам можно слать почту. Лечится одной TXT-записью в DNS:
v=spf1 include:_spf.yandex.net include:_spf.beget.com ~all — с include для каждого сервиса, через который
реально уходит почта: почтовый хостинг, CRM, рассылки, сам сайт.
2. Две SPF-записи
Старый и новый подрядчик добавили по записи. По стандарту при двух SPF проверка считается проваленной у всех получателей. Должна быть ровно одна запись со всеми include внутри.
3. Нет DKIM-подписи
Письмо не подписано, получатель не может убедиться, что оно не изменено. DKIM включается в панели почтового сервиса, вам выдают TXT-запись с селектором, её надо добавить в DNS. Если письма шлёт сам сайт через функцию mail() хостинга, DKIM обычно настраивается в панели хостинга или не настраивается вовсе.
4. Нет DMARC
Без политики получатель сам решает, что делать с сомнительным письмом, и всё чаще решает «в спам». Начните с
v=DMARC1; p=none; rua=mailto:dmarc@ваш-домен: ничего не блокирует, но присылает отчёты, из которых видно,
кто ещё шлёт письма от вашего имени. Через пару недель переключите на p=quarantine.
5. Письмо уходит с чужого адреса
Форма ставит в поле «От» адрес посетителя: от gmail.com через ваш хостинг. Для Gmail это подделка его же домена, письмо отбрасывается. Правильно: From — ваш адрес на вашем домене, адрес посетителя — в Reply-To.
6. Плохая репутация IP хостинга
На виртуальном хостинге с вашего IP шлют письма сотни сайтов, среди них есть заражённые. Адрес попадает в чёрные списки, и страдают все. Решение: отправлять через внешний SMTP (Яндекс 360, Mail.ru для бизнеса, SendGrid, UniSender) вместо mail() хостинга.
7. Содержание и ссылки
Письмо из одной строки «Новая заявка» со ссылкой на IP-адрес вместо домена, вложение .zip, заглавные буквы в теме. Спам-фильтры оценивают и это. Пишите нормальную тему, добавляйте текст, ссылки только на свой домен.
Как исправить за один вечер
- Проверьте домен инструментом SPF, DKIM, DMARC. Увидите, чего нет.
- Соберите список всех отправителей от вашего домена: хостинг, почтовый сервис, CRM, рассылки.
- Добавьте одну SPF-запись со всеми include. Удалите дубли.
- Включите DKIM в каждом сервисе и добавьте их записи.
- Добавьте DMARC с p=none и адресом для отчётов.
- Настройте форму на сайте: From на своём домене, посетитель в Reply-To. Лучше отправку через SMTP.
- Через сутки повторите проверку и отправьте тестовое письмо себе на Яндекс и Gmail, посмотрите «показать оригинал»: там будут строки SPF=PASS, DKIM=PASS, DMARC=PASS.
Как не узнать об этом снова через месяц
Записи SPF и DMARC пропадают при переезде DNS, смене хостинга или «уборке» подрядчика, и никто не замечает, пока не кончатся заявки. SiteFalcon снимает DNS каждого сайта раз в сутки и сообщает, если SPF или DMARC исчезли, а мониторинг форм показывает, что заявки перестали отправляться или плагин формы сообщил об ошибке отправки письма. Подробнее: мониторинг DNS-записей.
Частые вопросы
Достаточно ли одного SPF?
Нет. SPF без DKIM и DMARC даёт слабую защиту: Gmail и Mail.ru всё чаще требуют все три. Но начинать нужно именно с SPF, это самая частая дыра.
Через сколько подействуют изменения в DNS?
Обычно от нескольких минут до часа, при большом TTL до суток. Проверить, что записи видны, можно инструментом проверки почты домена.
Почему письма из формы доходят на Яндекс, но не на Gmail?
У Gmail строже политика: он требует DMARC и не принимает письма «от gmail.com» с чужих серверов. Чаще всего дело в поле From.
Что такое ~all и -all в SPF?
~all — «мягкий» отказ: письма с чужих серверов помечаются подозрительными; -all — жёсткий отказ. Начинайте с ~all, чтобы не потерять письма от забытого сервиса.