Формы обратной связи в Битрикс: три способа и их цена
Клиент просит форму на сайте под 1С-Битрикс. Кажется, дело на десять минут, но письма не доходят, а в ящик сыплется спам. Разбираем три способа и чем каждый платит.

Клиент просит форму обратной связи на сайте под управлением 1С-Битрикс. Кажется, дело на десять минут: вставил компонент — и готово. А через неделю выясняется, что письма не доходят, в ящик сыплется спам с незнакомых IP, а имя отправителя в письме пустое. Разберём на живом примере три способа сделать форму и чем каждый из них платит.
Проверялось на 1С-Битрикс: Управление сайтом 24.x (ядро D7). Речь про CMS, а не про Bitrix24. В более старых редакциях пути в админке и часть параметров отличаются.
Почему «просто вставить форму» ломается
Форма обратной связи — это не кусок HTML с кнопкой. Это цепочка: валидация на клиенте и сервере, формирование почтового события, доставка письма и защита от ботов. Голый HTML с <form action="mail.php"> проваливается на каждом звене: нет капчи, письмо уходит мимо настроек сайта, а при неверной кодировке в ящик приходят кракозябры вместо текста.
В Битриксе готовые механизмы уже есть, но их три, и они не взаимозаменяемы. Выбор не косметический: он определяет, будете ли вы хранить заявки, во что встанет поддержка и переживёт ли форма переезд на другую редакцию.
Три способа сделать форму
1. Компонент main.feedback
Самый короткий путь. Компонент входит в главный модуль, поэтому доступен в любой редакции, включая «Старт». Он не хранит заявки в базе — только отправляет письмо по почтовому событию FEEDBACK_FORM. Вызов в шаблоне страницы:
<?php
// Стандартный компонент формы обратной связи
// 1С-Битрикс: Управление сайтом 24.x
$APPLICATION->IncludeComponent(
'bitrix:main.feedback',
'.default', // имя шаблона компонента
array(
'USE_CAPTCHA' => 'Y', // показывать CAPTCHA
'OK_TEXT' => 'Спасибо, сообщение отправлено.',
'EMAIL_TO' => 'info@example.com', // куда уходит письмо
'REQUIRED_FIELDS' => array('NAME', 'MESSAGE'), // обязательные поля
'EVENT_MESSAGE_ID' => array(), // ID почтовых шаблонов, пусто = по умолчанию
),
false
);
?>
Параметры USE_CAPTCHA, EMAIL_TO и REQUIRED_FIELDS — рабочие и достаточны для формы «напишите нам». Чего нет: истории обращений, статусов, выгрузки в Excel.
2. Модуль «Веб-формы»
Полноценный конструктор форм с хранением результатов в базе, статусами обращений, выгрузкой и настройкой уведомлений. Форма создаётся в админке, на страницу выводится компонентом bitrix:form.result.new с параметром WEB_FORM_ID. Минус: модуль входит не во все редакции — перед планированием проверьте в настройках продукта, установлен ли модуль «Веб-формы». Если его нет, план с хранением заявок рушится ещё до начала.
3. Своя AJAX-форма
Собственная вёрстка плюс обработчик на стороне сервера. Берут, когда нужен нестандартный UX, многошаговая форма или интеграция с CRM по своим правилам. Цена — вы сами отвечаете за валидацию, капчу, экранирование и отправку письма. Для одной контактной формы это перебор; для сложного сценария — единственный вменяемый путь.
Сравнение подходов
| Подход | Нужен модуль | Хранит заявки | Защита от спама | Когда брать |
|---|---|---|---|---|
| main.feedback | Нет, входит в главный модуль | Нет, только письмо | Встроенная CAPTCHA | Простая форма «напишите нам» |
| Веб-формы | Да, есть не во всех редакциях | Да: база, админка, экспорт | CAPTCHA + статусы заявок | Несколько форм, нужна история |
| Своя AJAX-форма | Нет | На ваше усмотрение | Делаете сами | Нестандартный UX, интеграции |
Ломается всегда самое незаметное звено. Форму видно сразу, а доставку письма — только когда клиент звонит и спрашивает, почему ему не ответили на заявку недельной давности.
Что ломается на практике
- Письма не доходят. Чаще всего причина не в коде, а в доставке: нет настроенного SMTP, домен без SPF и DKIM, письмо падает в спам. Проверяйте не «отправилось ли», а «дошло ли».
- Пустое имя или текст в письме. Шаблон почтового события ссылается на поля, которых форма не передаёт. Сверьте имена полей формы и подстановки в шаблоне письма.
- Кракозябры. Кодировка письма не совпала с кодировкой сайта. На UTF-8-проекте всё должно быть в UTF-8 сквозь всю цепочку.
- Поток спама. Без капчи форму находят боты за часы. Встроенной CAPTCHA в
main.feedbackхватает для старта, но её же дополняют ловушкой.
Ловушка (honeypot) добавляется в шаблон формы — скрытое поле, которое человек не видит, а бот заполняет:
<?php
// Схематично: ловушка для ботов в шаблоне формы.
// Поле скрыто через CSS, человек его не трогает, бот — заполняет.
?>
<input type="text" name="user_url" value="" tabindex="-1"
autocomplete="off" style="position:absolute;left:-9999px;">
<?php
// В обработчике отправки: если поле не пустое — тихо отбрасываем заявку.
if (!empty($_REQUEST['user_url'])) {
return; // боту ничего не показываем
}
?>
Когда что выбирать
Критерий простой — нужна ли вам история обращений.
- Одна контактная форма, заявки нужны только на почту — main.feedback. Не тащите ради неё целый модуль.
- Несколько форм, нужны статусы, выгрузка, отчёты — Веб-формы, если модуль есть в редакции.
- Многошаговый сценарий или интеграция с внешней системой — своя форма, но закладывайте время на валидацию и антиспам.
Интеграция заявок с CRM — отдельная тема, здесь разбираем только вывод и отправку формы.
Что настроить дальше
Форма на странице — это половина дела. Следующие шаги, без которых она бесполезна:
- Задать ключи reCAPTCHA или проверить встроенную капчу в настройках главного модуля — иначе спам начнётся в первый же день.
- Открыть шаблон почтового события и убедиться, что все подстановки полей заполнены, а адрес в
EMAIL_TOреальный. - Отправить тестовую заявку и проверить, что письмо дошло именно во «Входящие», а не в спам. Если падает в спам — настроить SPF и DKIM для домена.
- Через неделю заглянуть в логи почты или в раздел результатов «Веб-форм»: это покажет реальный поток заявок и спама.
Почтовое событие — механизм Битрикса, при котором форма не отправляет письмо напрямую, а инициирует событие заданного типа (для обратной связи — FEEDBACK_FORM). Система подставляет в него шаблон письма из настроек. Это позволяет менять текст и получателей без правки кода.
Honeypot («горшочек с мёдом») — приём антиспама: в форму добавляют поле, скрытое от человека средствами CSS. Люди его не заполняют, а боты, разбирающие HTML, вписывают в него данные. Заполненное поле — признак бота.
Мотивационное письмо и эссе: Поступление, стипендии, гранты, обмен
Спросить за 25 ₽Источники: Документация для разработчиков 1С-Битрикс, Документация по модулю «Веб-формы», 1С-Битрикс
Частые вопросы
Нужен ли модуль «Веб-формы» для простой контактной формы?
Письма из формы не приходят, что проверить в первую очередь?
Как остановить спам через форму?
В письме приходят кракозябры вместо русского текста
А если у меня другая редакция или старая версия Битрикса?
Какие подводные камни ждут в проде?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.