К содержанию
Разобраться
  1. sitebypro
  2. Статьи
  3. Не приходят письма с формы сайта

Не приходят письма с формы сайта: причины и как проверить

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

Где может потеряться заявка

Между кнопкой «Отправить» и письмом в вашей почте заявка проходит несколько звеньев. Каждое может сломаться отдельно, и посетитель об этом не узнает:

  1. Браузер. Скрипт формы собирает поля и отправляет их на сервер. Если в скрипте ошибка, данные никуда не уходят — а надпись «Спасибо» иногда всё равно появляется.
  2. Обработчик на сервере. Принимает данные, проверяет поля, сохраняет заявку (если сохраняет) и запускает отправку письма.
  3. Отправка письма. Сервер передаёт письмо почтовой системе — функцией mail() хостинга или через SMTP настоящего почтового ящика.
  4. Получатель. Почтовый сервис принимает письмо, проверяет, можно ли ему доверять, и кладёт во «Входящие», в «Спам» — или отклоняет.

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

9 частых причин

1. Письма уходят через mail() без SMTP

Многие CMS и самописные формы по умолчанию отправляют письма функцией mail() хостинга. Такое письмо не подписано вашим почтовым сервером, и Яндекс, Gmail или Mail.ru всё чаще отправляют его в спам или не принимают вовсе. Надёжнее отправлять через SMTP с авторизацией — от имени ящика на вашем домене или почтового сервиса.

2. В поле «От кого» стоит адрес посетителя

Частая ошибка: письмо с формы приходит «от» email, который ввёл клиент, например с адреса на gmail.com. Сервер сайта не имеет права отправлять письма от чужого домена, и почта получателя такое письмо отклоняет. Правильно: отправитель — ваш адрес на домене сайта, а адрес клиента — в поле «Ответить» (Reply-To).

3. У домена нет SPF, DKIM и DMARC

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

4. Хостинг ограничил отправку

У хостингов есть лимиты на количество писем, а после жалоб на спам отправку могут отключить совсем. Иногда mail() на новом тарифе или сервере просто не настроена. Проверить можно в панели хостинга или в журнале почты, если он доступен.

5. Сменился пароль от почтового ящика

Если форма отправляет письма через SMTP, в настройках сайта хранится пароль от ящика. Поменяли пароль, включили двухфакторную защиту, а почтовый сервис требует отдельный пароль для приложений — и письма перестают уходить в тот же день.

6. Ошибка скрипта формы после обновления

Обновили тему, плагин или подключили новый виджет — и скрипт формы перестал работать. Кнопка нажимается, но запрос на сервер не отправляется. Такие поломки видны в консоли браузера (F12 → «Консоль»).

7. Форма показывает «Спасибо» раньше, чем заявка принята

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

8. Капча или антиспам отсекают людей

Устаревшие ключи капчи, смена домена или слишком строгий фильтр — и форма отклоняет живых посетителей вместе с ботами. Часто так бывает после переезда сайта на новый адрес.

9. Письмо доходит, но не туда

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

Как проверить за полчаса

  1. Отправьте тестовую заявку сами — с телефона, не из админки, с реальным адресом почты.
  2. Проверьте «Спам», все папки и правила фильтрации в ящике получателя.
  3. Посмотрите, появилась ли заявка в админке сайта или в CRM, если форма их сохраняет. Если заявка есть, а письма нет — проблема в отправке почты. Если нет и заявки — в форме или обработчике.
  4. Откройте в браузере инструменты разработчика (F12 → «Сеть»), отправьте форму и найдите запрос. Код ответа 200 — сервер ответил, 4xx или 5xx — ошибка на сервере, запроса нет совсем — ошибка в скрипте.
  5. Если письмо пришло в спам, откройте его оригинал («Показать оригинал» или «Свойства письма») и найдите строки с результатами проверок SPF, DKIM и DMARC.
  6. Загляните в журнал ошибок сайта и журнал почты на хостинге за время тестовой отправки.

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

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

Исправить одну причину мало: через полгода сломается что-то другое. Надёжная форма устроена так, чтобы сбой одного звена не означал потерю обращения:

  • Сначала сохранить, потом уведомлять. Заявка записывается в базу сайта или CRM, и только после этого уходит письмо или сообщение. Даже если почта не сработала, обращение не пропадёт.
  • Успех — только после ответа сервера. Посетитель видит «Заявка принята», когда сервер действительно её принял. При ошибке — понятное сообщение, введённый текст остаётся, рядом другой способ связи.
  • Два канала уведомлений. Например, мессенджер и почта: если один недоступен, срабатывает второй.
  • Журнал ошибок. Сбой отправки записывается, а не исчезает молча.
  • Регулярная проверка. Тестовая заявка раз в неделю или после каждого обновления сайта.

Так устроена и форма на этом сайте: сервер сначала записывает заявку в базу и сразу отвечает посетителю, уведомление в Telegram уходит после ответа, а если Telegram недоступен — приходит письмо на почту.

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

Раньше письма приходили, а теперь нет. Мы ничего не меняли.

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

Письма приходят, но в спам. Это страшно?

Да: часть писем может не дойти совсем, а в спаме их легко пропустить. Обычно помогает отправка через SMTP от адреса на вашем домене и настроенные SPF, DKIM и DMARC.

Можно ли получать заявки не на почту, а в Telegram или CRM?

Можно, и лучше сразу в несколько мест: в базу или CRM для учёта и в мессенджер для быстрой реакции. Как передавать заявки в таблицу, мы разобрали в отдельной статье, про CRM — здесь.

Ещё по теме

Заявки должны доходить. Все

Опишите, что происходит с формой: с какого момента пропали письма, что меняли на сайте. Скажем, где искать причину.

Не приходят заявки с сайта

Опишите, что происходит, своими словами. Пароли и доступы в форму не пишите.

Удобнее написать самому? Telegram @dozer_stoun или sitebypro@mail.ru