Макросы в почтовом шаблоне формы обратной связи

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

С 2012 года многое изменилось в модуле, а в недавних обновлениях еще и добавилась возможность задавать полям атрибут name , что дает модулю больше возможностей, больше воздуха.

Благодаря такой возможности теперь можно записывать в свойства инфоблока с одноименным кодом значения полей типа строка или число, а также выводить в почтовом шаблоне значения полей по коду из атрибута @name=КОД ПОЛЯ

Макросы в почтовом шаблоне

Почтовые шаблоны Битрикс хранятся в админке здесь, каждый из них прикреплен к какому-нибудь модулю или компоненту, или даже php-коду в файле.
Почтовые шаблоны Битрикс

Почтовые шаблоны необходимы для оформления писем, которые будут отправляться на почту, в виде текста или html.
В настройках компонента обратной связи есть опция, где вы привязываете соответствующий модулю почтовый шаблон, как администратора, так и пользователя.

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

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

Макрос в почтовом шаблоне слева и справа содержит символ решетки, регистр учитывается, пример: #NAME#, #email#

Автоматический режим заполнения макросов - в этом режиме модуль работает по умолчанию, в почтовом шаблоне заполняется макрос #WORK_AREA# всеми данными формы, которые вводил посетитель, т.е. компонент собрал все поля формы, когда нажали Отправить, обработал данные, склеил их в одну таблицу или строку и подставил в этот макрос, вот и весь автоматический режим, а когда-то его не было, мега удобно.

Ручной режим заполнения макросов - этот режим предполагает ручное прописывание макросов в почтовом шаблоне.
Тут сразу возникает вопрос, как и чего писать, как узнать, например, для поля Ваше имя или Ваш e-mail какой макрос писать?

  • Макросы полей конструктора форм - тут макрос соответствует значению атрибута @name=КОД ПОЛЯ  

    - Поле Ваше имя задано примерно так: Ваше имя@input@type=text@name=name@required
    значит макрос в почтовом шаблоне для этого поля будет #name#

    - Поле Ваш e-mail задано примерно так: Ваш e-mail@input@type=text@name=email@required
    значит макрос в почтовом шаблоне для этого поля будет #email#

    Если в верхнем регистре задан атрибут, например @name=EMAIL , значит в почтовом шаблоне надо писать #EMAIL#   

  • Макросы встроенных полей - в настройках компонента есть встроенные поля, которые не имеют никаких настроек, для них коды заданы в самом компоненте, вот их весь список в виде готовых для почтового шаблона макросов:
      #AUTHOR_FIO#   ФИО
      #AUTHOR_NAME#   Ваше имя
      #AUTHOR_LAST_NAME#   Фамилия
      #AUTHOR_SECOND_NAME#   Отчество
      #AUTHOR_EMAIL#   E-mail
      #AUTHOR_PERSONAL_MOBILE#   Контактный телефон
      #AUTHOR_WORK_COMPANY#   Компания
      #AUTHOR_POSITION#   Должность
      #AUTHOR_PROFESSION#   Профессия
      #AUTHOR_STATE#   Область, район
      #AUTHOR_CITY#   Город
      #AUTHOR_WORK_CITY#   Город работы
      #AUTHOR_STREET#   Улица
      #AUTHOR_ADRESS#   Адрес
      #AUTHOR_PERSONAL_PHONE#   Домашний телефон
      #AUTHOR_WORK_PHONE#   Рабочий телефон
      #AUTHOR_FAX#   Факс
      #AUTHOR_MAILBOX#   Почтовый ящик
      #AUTHOR_WORK_MAILBOX#   Рабочий почтовый ящик
      #AUTHOR_SKYPE#   Скайп
      #AUTHOR_ICQ#   Номер ICQ
      #AUTHOR_WWW#   Персональный сайт
      #AUTHOR_WORK_WWW#   Рабочий сайт
      #AUTHOR_MESSAGE_THEME#   Тема сообщения
      #AUTHOR_MESSAGE#   Сообщение
      #AUTHOR_NOTES#   Заметки

Ну и осталось понять, зачем нужно это ручное заполнение почтового шаблона макросами?
А нужно это тогда,  когда это требует задача или дизайн почтового шаблона, т.е. когда автоматически режим заполнения полей не подходит под дизайн, или когда в почтовом шаблоне нужно вывести служебные макросы, вот они:

  Номер тикета
  #TICKET_ID#
  Тема письма
  #SUBJECT#
  Заголовок страницы   #PAGE_TITLE#
  URI страницы   #PAGE_URI#
  URL страницы   #PAGE_URL#
  URL раздела
  #DIR_URL#
  Заголовок формы   #FORM_TITLE#
  Имя хоста/домена   #HTTP_HOST#
  IP отправителя   #IP#
  Браузер отправителя   #HTTP_USER_AGENT#
  Дата и время   #DATETIME#
  E-mail отправителя письма   #DEFAULT_EMAIL_FROM#
  E-mail получателя письма   #EMAIL_TO#

Пример почтового шаблона

Информационное сообщение сайта #SITE_NAME#
------------------------------------------
#name#, здравствуйте!

Это копия Вашего обращения №#TICKET_ID#, пожалуйста, не отвечайте на данное письмо, дождитесь моего ответа.

#WORK_AREA#

Заключение

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

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

Установка модуля