Отправка письма со вложением через веб-формы Битрикс

Отправка письма со вложением через веб-формы Битрикс

Ниже рассматривается процесс создания и настройки формы на сайте для отправки писем со вложениями на почту администратора сайта. Решается данная задача через модуль «Веб-формы» от битрикса.

 

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

Весь процесс можно разделить на 3 условных блока:

  1. Создание формы в админке
  2. Вывод формы на соответствующей странице в публичной части
  3. Добавление обработчика в init.php

Создание веб-формы в админке

Для создания веб-формы в битриксе нужно перейти в Сервисы > Веб-формы > Настройка форм и кликнуть кнопку «создать».

Основной интерес, на данном этапе, представляют вкладки «Свойства» и «Шаблон формы».

На вкладке «свойства» требуется ввести название, отметить привязку к сайту и отправку результатов по email, ввести название кнопки для отправки формы, капчу (опционально):

На вкладке «Шаблон формы» происходит настройка, собственно, шаблона. Можно использовать как визуальный редактор, так и отображение в виде кода. Для данной задачи нужна была форма всего из двух полей:

Эта же форма, но в виде кода:

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

Сохранив изменения, в целом, процесс настройки формы в админке можно считать законченным. Конечно, стоит отдельно заметить, что в настоящем примере процесс представлен в очень упрощенном виде, т.к. задействованы всего 2 кнопки: Прикрепление файла и кнопка «Отправить». Но, с другой стороны, алгоритм создания веб-форм в битриксе один и тот же. Основные сложности с данным модулем возникают при попытке добавить ajax-отправку к данной форме. Впрочем, это не является темой настоящей статьи.

Вывод формы на соответствующей странице в публичной части

Далее следует вывести компонент с данной формой в публичной части сайта. В целом, здесь все предельно просто: На нужной странице (Для наглядности, предполагается, что это статичная страница), нужно вывести требуемую форму. Выглядеть это должно примерно следующим образом:

result_list.php в данном случае — это страница, куда попадает пользователь после заполнения формы. Если нет иных требований, то можно сделать что-то такое:

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

Добавление обработчика в init.php

Для того, чтобы в письме с результатами формы приходила не только ссылка на прикрепленный к форме файл, но данный файл пересылался бы в письме как вложение, требуется добавить обработчик события для отправки данной формы. Для этого, в файле init.php, который расположен по адресу /bitrix/php_interface/ нужно добавить следующий код:

Обратите внимание, что в «if ($event === ‘FORM_FILLING_SIMPLE_FORM_4’ && $message_id === ‘119’)» нужно задать код формы и ID почтового шаблона для данного события.

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

  1. Придет письмо со вложением на почту (что и требовалось).
  2. В «Ответах» соответствующей формы в «веб-формах» также будут результаты заполнения.

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