Форма на сайте показала «Спасибо, мы вас получили». Менеджер ждёт звонка. Клиент ждёт ответа. Никто никому не позвонил. Знакомо? Это не редкость — это системная проблема, которую легко не заметить.
В этой статье разберём, почему заявки с сайта теряются, как выбрать надёжный способ отправки писем и как проверить, что форма работает не «вроде бы», а по-настоящему.
Три дороги к почте: какой выбрать
Когда посетитель нажимает кнопку «Отправить», сайт должен доставить письмо на почту менеджера. Звучит просто — но технически сделать это можно тремя разными способами, и они сильно отличаются по надёжности.
Способ 1. PHP mail() — письмо без марки
Это стандартный встроенный инструмент сервера. Сайт как бы сам становится почтальоном и пытается отправить письмо напрямую, без какой-либо авторизации.
Аналогия: опустить открытку в почтовый ящик без марки и обратного адреса. Может дойдёт, а может нет.
Плюс: работает «из коробки», ничего настраивать не нужно.
Минус: почтовые сервисы (Яндекс, Mail.ru, Gmail) видят, что письмо пришло от «незнакомца без документов», и отправляют его в спам — или вообще не принимают. Для бизнес-форм это неприемлемо.
Способ 2. SMTP — заказная бандероль с печатью
Сайт не отправляет письмо самостоятельно, а авторизуется на настоящем почтовом сервисе — например, на корпоративном ящике info@вашакомпания.ru — и просит его передать письмо получателю.
Это золотой стандарт для бизнеса. Письма приходят во «Входящие», а не в спам. Отправка идёт от вашего корпоративного адреса — это выглядит профессионально и вызывает доверие.
Плюс: высокая надёжность доставки, хорошая репутация у почтовых сервисов.
Минус: требует настройки (логин, пароль, параметры сервера). У большинства провайдеров есть лимиты — обычно несколько сотен или тысяч писем в сутки, чего для форм обратной связи более чем достаточно.
Способ 3. Транзакционные сервисы — курьерская служба
Письмо передаётся профессиональному сервису рассылок (Unisender, SendPulse и другие), который доставляет его через выделенные серверы с белым IP-адресом.
Плюс: максимальная доставляемость, аналитика (видно, дошло ли письмо, открыли ли его), не нагружает корпоративный ящик.
Минус: требует интеграции через API и, как правило, платного тарифа. Оправдано, когда писем много — например, подтверждения бронирований на сайте туроператора.
Как выбрать:
- Небольшой сайт с парой форм — SMTP на корпоративном ящике. Надёжно, бесплатно, несложно настроить.
- Много транзакционных писем (бронирования, подтверждения, уведомления) — транзакционный сервис.
- PHP mail() — только как временное решение при отладке. Для продакшена не подходит.
Молчание убивает конверсию — и вы этого не замечаете
Вот типичная история: разработчик сдаёт сайт, проверяет форму, видит надпись «Спасибо» — и фиксирует задачу как выполненную. Клиент запускает рекламу, люди оставляют заявки. Отдел продаж сидит в тишине.
Письма уходят в спам или не доходят вовсе. Клиент винит рекламу, маркетолога, сезон — но не форму.
На одном из наших проектов после плановой смены хостинга форма три недели исправно показывала «Спасибо», но ни одно письмо не доходило до менеджера. Это выяснилось случайно — клиент позвонил и спросил, почему с сайта нет заявок уже месяц.
Самое неприятное — технически всё «работало». Сайт отвечал, форма реагировала. Не работала только доставка.
Почему формы ломаются — и вы не знаете об этом
Форма может перестать работать внезапно, без каких-либо видимых симптомов. Вот самые частые причины:
- Принимающий почтовый сервер заблокировал или отфильтровал письмо. Это самая частая причина. Отправка со стороны сайта прошла успешно, форма показала «Спасибо» — но сервер получателя либо молча отклонил письмо, либо автоматически отправил его в папку «Спам». Менеджер ждёт заявки во «Входящих» и ничего не видит.
- IP-адрес сервера отправки попал в чёрные списки. Если с того же сервера рассылался спам (например, другим сайтом на том же хостинге), почтовые сервисы начинают блокировать всю почту с этого адреса — в том числе ваши заявки.
- Хостинг-провайдер заблокировал функцию mail() на сервере из-за спамеров-соседей (это происходит без предупреждения).
- Хостинг обновил версию PHP — старый код перестал работать корректно.
- Сменился пароль от почтового ящика, привязанного к SMTP, — авторизация упала.
- Обновился плагин или CMS — что-то в цепочке отправки сломалось.
Ни в одном из этих случаев форма не выдаст ошибку на экране. Посетитель увидит «Спасибо». Вы не увидите ничего.
Важно понимать: проблема часто находится не на вашей стороне. Ваш сайт отправляет письмо корректно — но принимающий сервер его отклоняет. Это не поломка, это требование входящего сервера, и для её устранения нужна диагностика настроек отправки.
Боты и спам: обратная сторона той же проблемы
Если первая опасность — форма молчит, когда не должна, то вторая — форма говорит слишком много и не тому.
Незащищённую форму находят боты и начинают её заполнять автоматически. Это создаёт сразу несколько проблем:
Во-первых, ваш почтовый ящик засыпают сотни мусорных писем. Во-вторых, если отправка идёт через SMTP с вашего корпоративного ящика — он попадает в чёрные списки как источник спама. После этого нормальные заявки тоже перестают доходить.
Как защититься:
- Honeypot — скрытое поле, которое человек не видит и не заполняет, а бот заполняет. Простой, незаметный для пользователя метод — хорошая стартовая точка.
- Яндекс.Капча — если honeypot не справляется или форма стоит на высокотрафиковой странице, подключаем капчу. В России это надёжнее и стабильнее западных аналогов.
- Ограничение по частоте отправки — не давать отправлять более одной заявки с одного IP за короткое время.
Борьба с ботами — это бесконечное противостояние атаки и защиты. Не стоит сразу закладывать сложные решения: начните с honeypot, и подключайте более серьёзную защиту только если проблема реально возникла. Это экономит и время разработчика, и деньги клиента.
Как проверить, что форма работает
Проверять нужно не один раз при сдаче сайта, а регулярно. Вот два уровня контроля.
Уровень 1. Ручная проверка
Заполните форму самостоятельно — с нескольких разных почтовых адресов: Яндекс, Mail.ru, Gmail и корпоративного ящика. Проверьте не только папку «Входящие», но и «Спам».
Если письмо попало в спам с одного из сервисов, значит, репутация отправителя под вопросом. Если не дошло вообще — нужна диагностика.
Минус ручной проверки: вы делаете её один раз — а форма может сломаться завтра после обновления плагина или смены настроек сервера.
Уровень 2. Автоматический мониторинг
Для мониторинга доступности самого сайта давно существуют удобные сервисы — UptimeRobot, Better Uptime и другие: они проверяют, что сайт открывается, и присылают уведомление, если нет. С проверкой почтовых форм сложнее — готового универсального инструмента здесь нет.
Что теоретически можно сделать:
- Настроить скрипт, который с заданной периодичностью отправляет тестовую заявку через форму и проверяет, пришло ли письмо на контрольный ящик. Если нет — уведомление в Telegram или на почту администратора.
- Использовать платформы автоматизации (n8n, Make) для построения такой цепочки без написания кода.
Честно говоря, автоматический мониторинг именно почтовых форм — задача нестандартная, и «из коробки» она не решается. Если у вас критически важный сайт с высоким потоком заявок, это стоит обсудить отдельно — решение подбирается под конкретную задачу.
Чек-лист: что может пойти не так
Симптомы, которые стоит знать:
- «Нажал отправить — ничего не произошло, надписи "Спасибо" нет»
Скрипт формы не работает. Возможно, ошибка в JavaScript или конфликт с другим плагином.
- «Надпись "Спасибо" есть, а письмо не пришло»
Самый коварный случай. Форма отработала, но письмо потерялось на этапе отправки — скорее всего, заблокировано или отфильтровано на стороне принимающего сервера. Проверьте папку «Спам» и способ отправки.
- «Письмо приходит, но текст с кракозябрами»
Проблема с кодировкой. Данные из формы собираются некорректно — клиент видит вместо имени «Р'ася».
- «Письмо пришло, но поля пустые»
Шаблон письма не подтягивает данные из формы. Нужна правка в коде.
- «Всё работало, а вчера перестало»
Первым делом проверяйте папку «Спам» у получателя — чаще всего причина именно там: принимающий сервер ужесточил фильтрацию или репутация отправителя снизилась. Реже — смена пароля SMTP, обновление PHP или блокировка на хостинге.
- «В CRM приходят сотни мусорных заявок»
Итого: что важно помнить
Форма — это последний шаг между клиентом и вашим менеджером. Всё, что было до — реклама, SEO, хороший сайт — теряет смысл, если заявка не дошла.
- Используйте SMTP, а не PHP mail(). Это не сложно настроить, но разница в доставляемости принципиальная.
- Защитите форму от ботов — начните с honeypot, подключайте Яндекс.Капчу по необходимости.
- Помните: если письмо не дошло, проблема чаще на стороне принимающего сервера, а не вашего сайта. Это диагностируется.
- Проверяйте форму регулярно — не только при запуске сайта.
Не уверены, что ваши формы работают корректно? Напишите нам — проверим настройки отправки и расскажем, что можно улучшить.
Часто задаваемые вопросы
- Нужна ли капча на каждой форме?
Не обязательно на каждой. Хорошая стартовая точка — honeypot: он невидим для пользователей и эффективен против большинства простых ботов. Капча подключается, если honeypot уже не справляется.
- Письмо не дошло — это значит, сайт сломан?
Не обязательно. Очень часто сайт отправляет корректно, а письмо блокирует или фильтрует принимающий сервер. Это разные вещи с разными решениями. Первый шаг — проверить папку «Спам» у получателя.
- Мы пользуемся Битриксом / MODX / WordPress — это влияет на выбор?
Да, у каждой CMS свои инструменты настройки почты. Но принцип один: для SMTP нужно указать корректные данные авторизации. Мы делаем это при разработке и при переносе сайта на новый хостинг.
- Как часто нужно проверять форму вручную?
Минимум раз в месяц, и обязательно после любых обновлений сайта, смены хостинга или смены паролей от почты.