Логотип seo-prodvizhenie-biznesa.ru
+7 (921) 333-77-45

Письма с сайта уходят в спам: почему это происходит и как починить

Письма с сайта уходят в спам: почему это происходит и как починить
Анатолий Кузнецов
Анатолий Кузнецов
SEO-оптимизатор с 20-летним стажем. Автор блога seo-prodvizhenie-biznesa.ru о продвижении и доработке сайтов.

Письма попадают в спам тихо, и в этом вся беда: сервер отчитался «сообщение отправлено», в админке заявка есть, почтовая служба получателя молча положила письмо в папку «Спам» — и никто никому не сообщил. Через неделю выясняется, что клиент так и не увидел счёт, а вы не увидели три заявки. Ни ошибки, ни уведомления, ни строчки в логе, которую владелец сайта стал бы читать.

Ниже — разбор по шагам: почему так происходит, что означают три записи в настройках домена, как за пять минут прочитать служебную часть письма и узнать, прошло оно проверки или нет, и что сделать с формами, чтобы заявки перестали теряться. Если руки не доходят, есть продвижение и техническая поддержка сайта — почтовую часть я всегда проверяю первой, потому что от неё зависят деньги, а не позиции.

Две разные беды, которые путают

Беда первая: ваши письма не доходят клиентам. Сайт отправляет подтверждение заказа, счёт, ссылку на восстановление пароля, уведомление о статусе — и всё это оседает в спаме у получателя. Здесь проблема на вашей стороне: почтовые службы не верят, что письмо действительно отправлено от имени вашего домена.

Беда вторая: заявки с сайта не доходят вам. Человек заполнил форму, увидел «спасибо», а письмо с его телефоном не пришло или лежит в спаме вашего собственного ящика. Здесь виновата та же механика, но последствия дороже: вы не знаете, сколько обращений потеряли, потому что их просто нет ни в одном отчёте. Отдельный разбор, где именно теряются обращения на пути от кнопки до менеджера, есть в материале про то, как заявки с сайта теряются.

Проверить, какая у вас беда, можно за три минуты. Оставьте заявку на своём сайте на адрес в двух разных почтовых службах и посмотрите, куда придут письма. Потом отправьте себе письмо с адреса на своём домене из обычного почтового клиента. Если тестовая заявка легла в спам, а письмо из клиента дошло нормально — проблема в том, как отправляет сайт, а не в домене целиком.

Почему сайт отправляет письма «от себя» и им не верят

Стандартный движок сайта отправляет почту простой командой средствами сервера. Сервер честно формирует письмо, в поле «От кого» ставит адрес вида info@вашдомен.ру и отдаёт его дальше. Формально всё верно. Проблема в том, что принимающая сторона видит картину иначе: письмо от имени вашего домена пришло с сервера, который к вашему домену никакого отношения не имеет.

Для почтовой службы это ровно тот признак, по которому вычисляют подделку: мошенник делает то же самое — берёт чужой домен в поле отправителя и шлёт письмо со своего сервера. Отличить одно от другого можно только по тому, разрешил ли владелец домена этому серверу отправлять письма от его имени. Разрешение записывается в настройках домена. Нет записи — нет разрешения, и письмо уходит в спам не по злому умыслу, а по инструкции.

Отсюда вывод, который снимает половину вопросов: правка текста письма и отказ от картинок не помогут, пока принимающая сторона не может подтвердить, что письмо действительно ваше. Содержание проверяют вторым шагом, подлинность — первым.

SPF, DKIM и DMARC: что решает каждая запись

SPF — список серверов, которым разрешено отправлять почту от имени вашего домена. Вы перечисляете в записи адреса и сервисы, которые имеют право слать письма с вашего домена. Принимающая сторона смотрит, откуда пришло письмо, сверяется со списком и делает вывод. В конце записи стоит механизм all с квалификатором, и он задаёт, что делать с письмами со всех остальных серверов: знак + означает pass (разрешено), — — fail (не разрешено), ~ — softfail (вероятно не разрешено), ? — neutral (явного утверждения нет). Пример значения для домена, почта которого обслуживается почтовым сервисом: v=spf1 ip4:адрес-вашего-сервера include:_spf.имя-почтового-сервиса ~all.

Две технические ловушки. Первая: у домена не должно быть нескольких SPF-записей — если проверка находит больше одной подходящей записи, результатом будет permerror, постоянная ошибка, требующая вмешательства того, кто управляет зоной. Подключая второй сервис рассылки, нельзя просто добавить вторую строчку: механизмы include объединяются в одну запись. Вторая: количество механизмов и модификаторов, требующих обращения к DNS (include, a, mx, ptr, exists, redirect), ограничено десятью. Превысили — снова permerror.

DKIM — цифровая подпись письма. Отправляющий сервер подписывает письмо закрытым ключом, а открытый ключ публикуется в настройках домена отдельной TXT-записью с именем вида селектор._domainkey и значением вроде v=DKIM1; k=rsa; p=…. Принимающая сторона берёт открытый ключ и проверяет подпись. Яндекс Почта формулирует это прямо: подлинность домена отправителя проверяется по наличию цифровой подписи DKIM, а сама подпись подтверждает, что письмо не было перехвачено и изменено после отправки. Установить подпись может только администратор сервера — из панели сайта это не делается.

DMARC — правило, что делать с письмами, не прошедшими проверку. Запись создаётся с именем _dmarc у вашего домена. В ней вы задаёте политику: p=none — владелец домена не просит принимающую сторону предпринимать каких-либо особых действий в отношении доставки; p=quarantine — владелец домена хочет, чтобы не прошедшие проверку письма считались подозрительными; p=reject — владелец домена хочет, чтобы такие письма отклонялись, причём отклонение должно происходить прямо во время SMTP-сессии.

Главное в DMARC — выравнивание идентификаторов. Сообщение проходит проверку DMARC, если хотя бы один из механизмов аутентификации даёт результат pass и делает это на идентификаторе, который выровнен с доменом из поля «От кого». То есть недостаточно, чтобы SPF просто прошёл: домен, на котором он прошёл, должен совпадать с доменом отправителя (в мягком режиме — по организационному домену, в строгом — точно). Именно поэтому письма через сторонний сервис могут иметь зелёный SPF и при этом валиться по DMARC.

И приятный бонус: в записи DMARC указываются адреса для отчётов — rua для сводных отчётов о потоках писем и ruf для подробных отчётов о письмах, не прошедших проверку. Даже политика p=none с адресом для отчётов даёт вам то, чего не даёт ничто другое: вы начинаете видеть, кто и откуда шлёт письма от имени вашего домена.

Как прочитать письмо и понять, прошло ли оно проверки

Теория закончилась, дальше практика. Отправьте письмо с сайта на свой ящик в любой крупной почтовой службе, откройте письмо и найдите пункт меню вроде «Свойства письма», «Показать оригинал» или «Исходное сообщение». Откроется служебная часть — та самая, которую обычно не видно.

Ищите строку Authentication-Results. Это стандартный заголовок, который принимающий сервер добавляет к письму после проверок. Внутри будут результаты по каждому методу: spf=pass, dkim=pass, dmarc=pass — и это то, что вы хотите увидеть. Значения расшифровываются так: pass — проверка пройдена, fail — не пройдена, softfail — мягкий отказ, neutral — политика ничего не утверждает, none — записи нет вообще, permerror — постоянная ошибка, temperror — временная.

Три самых частых диагноза по этой строке. spf=none — SPF-записи у домена нет, начинать нужно с неё. dkim=none — письмо не подписано, значит, отправка идёт мимо настроенного почтового сервиса. spf=permerror — записей несколько или превышен лимит обращений к DNS, надо чистить.

Симптом Что проверить Что настроить
Письма с сайта в спаме у всех получателей Строку Authentication-Results в тестовом письме SPF с адресом отправляющего сервера, затем DKIM
Письма из почтового клиента доходят, а с сайта — нет Каким способом отправляет движок и от какого адреса Отправку через почтовый сервис по SMTP с авторизацией
spf=permerror Сколько TXT-записей начинается с v=spf1 и сколько в них include Одна запись SPF, не больше десяти обращений к DNS
dkim=none Есть ли TXT-запись с открытым ключом и подписывает ли сервер письма DKIM на стороне почтового сервиса и запись в зоне домена
spf=pass, но dmarc=fail Совпадает ли домен в поле «От кого» с доменом, на котором прошёл SPF Выравнивание: отправка от адреса на своём домене, DKIM от своего домена
Заявки не приходят вообще, ни в спам, ни во «Входящие» Логи отправки на сервере и адрес получателя в настройках формы Дублирование заявок в базу сайта и в мессенджер

Почему отправка через сервер хостинга — частая причина

Виртуальный хостинг — это одна машина с одним внешним адресом, на которой живут сотни чужих сайтов. Если хоть один из соседей рассылает мусор, страдает репутация общего адреса, а вместе с ней и доставляемость ваших писем. Вы на это никак не влияете и даже не узнаете об этом.

Второй слой проблемы — требования к отправителю. Принимающие службы ожидают, что рассылающий хост имеет постоянный адрес с корректно настроенным обратным DNS-запросом, то есть PTR-записью. На общем хостинге обратная запись указывает на служебное имя хостера, а не на ваш домен, и совпадения нет.

Третий слой — само поле «От кого». Требование почтовых служб формулируется однозначно: отправитель из поля «От кого» должен полностью соответствовать адресу пользователя, с данными которого производится авторизация на сервере. Сайт, отправляющий письма служебными средствами сервера, ни под каким пользователем не авторизуется вообще.

Правильное решение одно и оно недорогое: настроить отправку писем сайта через почтовый сервис по SMTP с авторизацией под реальным ящиком на вашем домене. Тогда письмо уходит с инфраструктуры, которая имеет и SPF, и DKIM, и нормальную репутацию, а поле «От кого» совпадает с тем, под кем авторизовались. Для сайтов на распространённых движках это делается настройкой, для самописных — правкой кода отправки; такие доработки входят в доработку сайта и занимают обычно час.

Что сделать с формами, чтобы заявки не терялись

Даже с идеальными записями остаётся риск: письмо — это единственный экземпляр заявки, и если он потерялся, восстановить нечего. Поэтому почта не должна быть единственным каналом.

Шаг Что сделать Как проверить, что работает
1 Включить сохранение всех заявок в базу сайта В админке есть список обращений с датой и текстом
2 Настроить отправку писем сайта через SMTP с авторизацией В тестовом письме dkim=pass и spf=pass
3 Добавить дубль заявки в мессенджер или таск-трекер Тестовая заявка приходит двумя путями одновременно
4 Отправлять уведомления на ящик на своём домене, а не на бесплатный Адрес получателя в настройках формы — корпоративный
5 Завести правило в почте: письма с сайта не попадают в спам Фильтр создан на адрес отправителя, а не на слово в теме
6 Раз в месяц сверять число заявок в базе сайта и в почте Цифры совпадают; расхождение — сигнал о потерях

Отдельно про сами формы. Чем больше полей, тем выше шанс, что человек бросит заполнение на середине, и тогда потеря произойдёт ещё до всякой почты. Какие поля действительно нужны, а какие только мешают, я разбирал в материале про то, что каждое лишнее поле формы заявки стоит вам клиентов.

Репутация домена и что её портит

Записи в домене — пропуск на входе. Репутация решает, пустят ли вас после проверки пропуска: она копится месяцами и рушится за день.

Рассылка по купленной базе. Самый быстрый способ угробить домен. Люди, которые не подписывались, жмут «Это спам», и дальше страдают уже все ваши письма, включая счета постоянным клиентам.

Отправка на несуществующие адреса. Требование прямое: если принимающий сервер отвечает, что указанного пользователя не существует, рассылка по этому адресу должна быть приостановлена. Продолжать долбиться в мёртвые ящики — верный признак того, что база не чистится.

Отсутствие отписки. В массовом письме должен быть заголовок list-unsubscribe, оформленный по стандарту, а сама отписка должна отрабатывать быстро — в требованиях указано, что процесс не должен занимать более десяти минут.

Взломанный сайт. Классика: через дыру в движке ставят скрипт, который рассылает мусор с вашего сервера от вашего домена. Владелец узнаёт об этом, когда письма перестают доходить вообще. Как закрывать такие дыры, я описывал в материале про то, как защитить сайт от взлома.

Когда это не сработает и когда нужен специалист

Честный список ситуаций, в которых инструкция выше проблему не закроет.

Домен в чёрных списках. Если по домену уже накоплены жалобы, правильные записи улучшат картину, но не мгновенно. Репутация восстанавливается неделями аккуратной отправки, и никакая настройка этот срок не сократит.

Вы не управляете зоной домена. Без доступа к настройкам домена ни одна из трёх записей не появится. Бывает, что доступ остался у подрядчика, которого не найти. Заодно проверьте, все ли записи домена в порядке в принципе: как они роняют сайт целиком, разобрано в материале про то, почему домен не работает, а хостинг жив.

Изменения ещё не разошлись. После правки записей нужно подождать: в документации почтовых сервисов прямо указано, что обмен данными о новых записях между серверами в интернете может занять до 72 часов. Проверять результат через десять минут бессмысленно.

Инструкция закрывает типовой случай: один домен, один сайт, одна почта. Сложности начинаются, когда писем несколько потоков — сайт, бухгалтерия, рассылка, CRM, — и каждый идёт со своей инфраструктуры. Тогда SPF упирается в лимит обращений к DNS, выравнивание DMARC ломается на одном из потоков, а ужесточение политики до p=reject без предварительного разбора отчётов просто перестаёт доставлять часть вашей же переписки. Цена ошибки тут высокая и мгновенная: не «просели позиции», а «клиенты не получают счета». Если у вас именно такая картина, разбирать её лучше с человеком, который видел десятки таких конфигураций, а не методом подбора на живой почте.

Частые вопросы

Можно ли обойтись одной записью SPF и не возиться с остальными

Частично поможет, но этого мало. Требования почтовых служб к массовым отправкам формулируются жёстче: все сообщения должны быть подписаны с помощью DKIM, и также для домена должна быть настроена SPF-запись. DMARC при этом рекомендуется как дополнительная мера, которая проверяет, что DKIM и SPF принадлежат отправителю, и формирует отчёты о попытках подделки.

Что ставить в DMARC для начала

Начинайте с p=none и адресом для сводных отчётов. Эта политика не просит принимающую сторону предпринимать особых действий по доставке — она нужна, чтобы месяц-другой посмотреть, откуда реально уходят письма от вашего домена. Ужесточать до quarantine и reject имеет смысл, только когда в отчётах не осталось легитимных потоков, которые не проходят проверку.

Нужно ли что-то менять, если почта и сайт на разных сервисах

Это как раз правильная схема. Важно, чтобы в SPF были перечислены все серверы, которые реально отправляют письма от имени домена: и почтовый сервис, и сервер сайта, если он шлёт напрямую. И чтобы записей SPF при этом осталась ровно одна.

Где посмотреть, не рассылает ли мой домен спам без моего ведома

В отчётах, которые приходят на адрес из записи DMARC. Сводные отчёты показывают потоки писем от имени вашего домена, включая те, о которых вы не знали. Это единственный способ увидеть подделку до того, как о ней сообщат клиенты.

Коротко

Сначала определите, какая у вас беда: ваши письма не доходят клиентам или заявки с сайта не доходят вам. Лечение разное, а жалоба звучит одинаково.

Почтовая служба сначала проверяет подлинность и только потом содержание: пока не подтверждено, что письмо от вашего домена, переписывать текст бессмысленно.

SPF отвечает на вопрос «кому разрешено слать письма от моего имени», DKIM — «действительно ли письмо не подменили по дороге», DMARC — «что делать, если проверки не прошли, и куда прислать отчёт».

Запись SPF у домена должна быть ровно одна, а обращений к DNS внутри неё — не больше десяти. Нарушение любого из двух условий даёт permerror, и проверка не проходит.

Откройте служебную часть тестового письма и найдите строку Authentication-Results. Три слова pass в ней стоят дороже любых догадок о том, почему письма не доходят.

Заявка не должна существовать в одном экземпляре. Сохраняйте обращения в базу сайта и дублируйте в мессенджер — тогда потеря письма перестаёт быть потерей клиента.

Если писем несколько потоков, записи правились несколько раз разными людьми, а отчёты DMARC показывают отправителей, которых вы не узнаёте, — это уже не настройка на вечер, а разбор инфраструктуры. Приходите на консультацию: посмотрим вашу зону домена, тестовые письма и логи отправки и составим порядок действий, при котором ничего не отвалится по дороге.

Официальные источники: требования Яндекс Почты к рассылкам, RFC 7208 (SPF), RFC 7489 (DMARC).

Увеличьте позиции и продажи вашего сайта

Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:

Анатолий Кузнецов — SEO-оптимизатор

Остались вопросы по продвижению?

Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.

Связаться со мной →

Комментарии

Андрей

Добавил SPF, как советовали на форуме хостера, а письма всё равно в спаме. Открыл заголовки — там spf=permerror. Что это вообще значит?

Анатолий Кузнецов автор

Это постоянная ошибка проверки, и причин у неё ровно две. Первая и самая частая: у домена оказалось несколько TXT-записей, начинающихся с v=spf1. Так бывает, когда старую запись не удалили, а рядом добавили новую по инструкции. Вторая: внутри записи слишком много механизмов, которые требуют обращения к DNS, — их суммарно не должно быть больше десяти, а каждый include тянет за собой ещё. Откройте настройки домена, выпишите все TXT-записи в блокнот и убедитесь, что v=spf1 встречается ровно один раз. Дальше объединяйте нужные include в эту единственную запись и проверяйте письмом заново.

Артём

Спасибо за подсказку с Authentication-Results. Никогда не открывал исходник письма, а там сразу видно dkim=none. Пошёл настраивать отправку через SMTP.

Богдан

Не согласен с тем, что содержание письма ни при чём. У меня все три проверки зелёные, а письма с прайсом всё равно улетают в спам. Значит, дело как раз в тексте.

Анатолий Кузнецов автор

Я не писал, что содержание ни при чём, — я писал, что оно проверяется вторым шагом. У вас как раз тот случай, когда первый шаг пройден и в дело вступает всё остальное: объём вложения, доля картинок к тексту, ссылки на сокращатели, история отправок на этот адрес. Отдельно посмотрите, не выросли ли объёмы: домен, который слал двадцать писем в день, а теперь шлёт тысячу, фильтры читают как захваченный ящик. И проверьте репутацию через отчёты DMARC — возможно, от вашего домена шлёт кто-то ещё, а страдает ваш прайс.

Валентина

А правда, что после правки записей нужно ждать трое суток? У меня заработало через полчаса.

Василий

Валентина, трое суток — это верхняя граница, в документации так и пишут: обмен данными о новых записях может занять до 72 часов. Обычно расходится за час-два. Но если проверяете сразу и видите старое значение, это не ошибка настройки, а просто кэш.

Галина

У нас заявки с сайта приходят на бесплатный ящик, и примерно треть теряется. Менять почту дорого и долго, можно как-то обойтись?

Анатолий Кузнецов автор

Обойтись можно, но сначала уберите слово «примерно». Треть теряется — это оценка, а нужна цифра: включите сохранение всех заявок в базу сайта и через месяц сверьте её с письмами. Часто оказывается, что письма доходят все, а теряются они уже внутри почтового ящика, куда смотрят два человека без всякого порядка. Дальше по порядку: настройте отправку через SMTP с авторизацией, добавьте дубль заявки в мессенджер и заведите фильтр на адрес отправителя. Переезд почты на свой домен — правильный шаг, но он третий, а не первый.

Григорий

Поставил DMARC сразу на p=reject, как в статье в интернете советовали. На следующий день перестали доходить письма из бухгалтерской программы.

Анатолий Кузнецов автор

Ровно та ошибка, ради которой существует политика p=none. Reject означает, что принимающая сторона должна отклонять письма, не прошедшие проверку, прямо во время сессии — и ваша бухгалтерская программа, которая шлёт со своего сервера от вашего домена, под этот нож и попала. Верните p=none, укажите адрес для сводных отчётов и подождите месяц. В отчётах вы увидите все потоки, включая тот самый бухгалтерский. Добавьте его сервер в SPF, убедитесь по отчётам, что он проходит проверку с выравниванием, и только после этого переходите сначала на quarantine, а потом на reject.

Дмитрий

Вопрос про соседей по хостингу. Реально ли, что чужой сайт на том же сервере портит доставляемость моих писем?

Анатолий Кузнецов автор

Реально, и это одна из причин вообще не отправлять почту сайта средствами хостинга. Внешний адрес у виртуального хостинга общий на сотни сайтов, репутация считается по нему, и вы на неё не влияете. Добавьте сюда обратную запись DNS, которая указывает на служебное имя хостера, а не на ваш домен, — а требование к рассылающему хосту прямо говорит про постоянный адрес с корректно настроенным обратным запросом. Выход простой: пусть сайт авторизуется на почтовом сервисе под реальным ящиком вашего домена и отправляет через него. Тогда соседи перестают вас касаться.

Екатерина

Как понять, что домен уже испорчен и его репутацию надо восстанавливать, а не просто дописать записи?

Елена

Екатерина, у меня было так: записи все правильные, проверки зелёные, а письма всё равно в спаме у большинства. Помогли отчёты DMARC — выяснилось, что полгода с нашего домена кто-то слал рассылку через взломанный скрипт на сайте. Пока не вычистили сайт, ничего не менялось.

Захар

Скажу непопулярное: для сайта на десять заявок в месяц вся эта история с тремя записями и отчётами — стрельба из пушки. Проще поставить дубль в мессенджер и не думать про почту вообще.

Зоя

Захар, дубль в мессенджер решает вашу половину задачи — вы заявку увидите. Но клиенту-то подтверждение всё равно уходит с сайта, и если оно валится в спам, человек считает, что заказ не оформился. У нас именно из-за этого были повторные заказы и путаница на складе.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 Нажимая «оставить комментарий» вы принимаетеправила конфиденциальности 

Прокрутить вверх