Письма с сайта попадают в спам: что делать
Клиент оформил заказ, а письмо с подтверждением ушло в спам или не дошло вовсе. Причина в 90 % случаев одна: у домена не настроены записи, по которым почтовики проверяют отправителя.
Почему письма с сайта попадают в спам
Когда сайт отправляет письмо «от имени» info@вашдомен.ru, Gmail, Яндекс и Mail.ru задают три вопроса: разрешил ли домен этому серверу отправлять письма (SPF), подписано ли письмо ключом домена (DKIM) и что делать, если проверки не прошли (DMARC). Если ответов нет, письмо в лучшем случае идёт в спам, в худшем отклоняется. С 2024 года Gmail и Яндекс требуют DKIM и DMARC для всех, кто шлёт хоть сколько-нибудь заметный объём.
Как проверить, в чём проблема
- Отправьте письмо с сайта на свой ящик в Gmail.
- Откройте письмо, меню «⋮» → «Показать оригинал».
- Наверху будут три строки: SPF, DKIM, DMARC со статусами PASS или FAIL.
В Яндекс Почте то же самое: «Свойства письма» → заголовки, ищите Authentication-Results. Для полного отчёта отправьте письмо на адрес, который выдаёт сервис mail-tester.com, он оценит по 10-балльной шкале и перечислит, что не так.
SPF: кому разрешено отправлять
Это TXT-запись у домена, где перечислены серверы, которым можно слать письма от вашего имени. Сайт на хостинге, Яндекс 360 для бизнеса и сервис рассылок должны быть указаны все, иначе письма одного из них будут падать.
v=spf1 include:_spf.yandex.net include:_spf.hosting.ru ip4:1.2.3.4 ~all
Частая ошибка: две SPF-записи у одного домена. Это считается ошибкой, и проверка не проходит вообще. Запись должна быть одна, а всё нужное перечислено внутри.
DKIM: подпись письма
Сервер подписывает каждое письмо закрытым ключом, а открытый ключ публикуется в DNS. Ключ выдаёт тот, кто отправляет: панель хостинга (раздел «Почта → DKIM»), Яндекс 360, сервис рассылок. Запись выглядит как mail._domainkey.вашдомен.ru TXT "v=DKIM1; k=rsa; p=MIGf...". Если сайт шлёт через PHP-функцию mail() напрямую с хостинга, DKIM обычно нет, и это главная причина спама.
DMARC: политика
_dmarc.вашдомен.ru TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@вашдомен.ru"
Начинать лучше с p=none на неделю, получить отчёты и убедиться, что все ваши отправители проходят проверки. Потом переключить на quarantine или reject. Без DMARC Gmail с 2024 года отправляет письма в спам даже при верных SPF и DKIM.
Отправка через SMTP вместо mail()
Самое надёжное для сайта: отправлять письма не напрямую с веб-сервера, а через SMTP почтового сервиса (Яндекс 360, Mail.ru для бизнеса, собственный почтовый сервер). Тогда подпись DKIM и репутация IP уже настроены. В WordPress это плагин WP Mail SMTP, в Битриксе и Laravel настройка SMTP в конфиге.
Что ещё влияет
- Обратная DNS-запись (PTR) у IP сервера должна указывать на имя сервера, а не на что-то вроде
ip-1-2-3-4.hosting.ru. - Адрес отправителя должен существовать и принимать ответы,
noreply@на несуществующем ящике ухудшает репутацию. - Содержание письма: одни картинки без текста, ссылки на сокращатели, слова «бесплатно» капсом.
- Репутация IP. На дешёвом shared-хостинге IP общий с сотнями сайтов, и если один спамит, страдают все. Проверяется по чёрным спискам на mxtoolbox.com.
Настроим почту домена за 2 900 ₽
SPF, DKIM, DMARC и проверка доставляемости в Gmail, Яндекс и Mail.ru. За один рабочий день.
Разработчик с 10-летним опытом, ИП, по оферте и с закрывающими документами.