Как настроить почтовые шаблоны на 1С-Битрикс: события, макросы, дубликаты и проверка писем

Как настроить почтовые шаблоны на 1С-Битрикс: события, макросы, дубликаты и проверка писем

После установки решения или правки формы на почту падают два одинаковых письма, а в тексте остаются #AUTHOR# и #SALE_EMAIL# — типичная проблема с дублями шаблонов, а не «сломался SMTP». В поиске путают CMS "1С-Битрикс: Управление сайтом" с Bitrix24, и неясно, какой раздел админки трогать. Ниже - где лежат почтовые шаблоны, как связать их с типом события, поправить макросы и получить одно тестовое письмо. SMTP и DNS - в гайде по настройке почты на Битрикс.

Быстрый инсайт: Два одинаковых письма с формы или заказа почти всегда означают два активных шаблона на одно почтовое событие, а не "сломался Битрикс". Шаблон - это текст и поля "От кого / Кому", событие - его тип (FEEDBACK_FORM, SALE_NEW_ORDER). Сначала оставьте один активный шаблон с галочкой вашего сайта, проверьте макросы и тестовую отправку, и только потом копайте SMTP.

Речь про CMS на вашем сервере, не про облачную CRM Bitrix24. Нужен раздел "Почтовые и СМС события" в админке сайта. Событие - имя ситуации (форма, заказ); шаблон - текст письма с макросами #FIELD#. Цепочка: действие на сайте → CEvent::Send / Event::send → очередь b_event → SMTP. Если писем нет совсем, сначала настройте исходящую почту.

Разберите, когда править шаблоны на CMS, а не SMTP

Таблица: когда править шаблоны Битрикс, а когда SMTP

Шаблоны правят, когда письмо доходит, но текст не тот: дубли, пустые макросы, неверный From. SMTP и DNS - когда SUCCESS_EXEC = Y, а inbox пуст или всё в спаме. Не смешивайте задачи: сначала шаблоны и события, потом транспорт из гайда B17.

Симптом Скорее шаблон / событие Скорее SMTP / DNS
Два одинаковых письма Да: два активных шаблона или дублирование в главном модуле Редко
В тексте #EMAIL# без подстановки Да: макрос не описан в типе события или не передан из кода Нет
Форма пишет "отправлено", входящих нет Возможно: нет активного шаблона для EVENT_NAME Часто: нет SMTP, cron, custom_mail
Письмо есть, но From чужой домен Да: поле "От кого" в шаблоне Да: профиль SMTP и DNS

Делайте: для заявок с формы сверьте шаблон FEEDBACK_FORM с настройкой формы обратной связи. Не делайте: не крутите пароль приложения SMTP, пока не убедились, что активен ровно один шаблон на событие.

Откройте админку и свяжите тип события с шаблоном

Workflow: тип почтового события и шаблон в админке Битрикс

Точка входа: "Настройки → Настройки продукта → Почтовые и СМС события → Почтовые шаблоны". В "Типах почтовых событий" видно, какие макросы разрешены для FEEDBACK_FORM, SALE_NEW_ORDER и других имён. Колонка "Шаблоны" сразу показывает, не задвоился ли тип после установки решения.

  1. Откройте "Типы почтовых события" и найдите нужный EVENT_NAME (для стандартной формы - FEEDBACK_FORM).
  2. В колонке "Шаблоны" посмотрите, сколько привязано записей к одному типу.
  3. Перейдите в "Почтовые шаблоны", отфильтруйте по типу события и по сайту (LID: s1, s2 и т.д.).
  4. Убедитесь, что галочка "Активен" стоит только у одного шаблона на этот тип и сайт (если не нужна осознанная рассылка в несколько ящиков разными шаблонами).
  5. Запомните ID шаблона - он пригодится для параметра EVENT_MESSAGE_ID у компонента main.feedback.
  6. При многосайтовости проверьте язык шаблона: иначе подтянется текст не той витрины.

На практике, например после установки магазина или "Веб-форм", установщик часто добавляет второй шаблон, не отключая старый — типичная ошибка, из-за которой подстановка макросов вроде #EMAIL# перестаёт работать в ожидаемом шаблоне. Интегратор видит "отправлено", владелец - два письма. Диагностика: форма → FEEDBACK_FORM → N активных шаблонов → N писем.

Делайте: деактивируйте лишнее, не удаляйте сразу. Не делайте: не держите два активных шаблона "для теста" на одном сайте.

Отредактируйте поля шаблона, макросы и формат письма

Чеклист полей почтового шаблона и макросов в Битрикс

В карточке шаблона: "От кого", "Кому", "Тема", BODY_TYPE (text|html), "Сообщение". Макрос #FIELD# подставляется из полей события; #DEFAULT_EMAIL_FROM#, #SITE_NAME# и #SERVER_NAME# тянутся из настроек сайта. #SALE_EMAIL# - e-mail отдела продаж в модуле "Интернет-магазин".

  1. Откройте почтовый шаблон из списка.
  2. "От кого": #DEFAULT_EMAIL_FROM# или #SALE_EMAIL# для заказов.
  3. "Кому": ящик менеджера или макрос по сценарию.
  4. Тема и тело - только макросы из подсказки типа события.
  5. html - для табличной вёрстки (до ~600 px ширины).
  6. Сохраните с правильным LID сайта.

Если #MACRO# не раскрылся, проверьте описание типа события и передачу полей в CEvent::Send. Заказы - SALE_NEW_ORDER (обработка заказов), регистрация - USER_* (личный кабинет).

Делайте: копируйте макросы с формы шаблона. Не делайте: не тащите в html-письмо скрипты и тяжёлый CSS.

Устраните дубли писем, лишние копии и пустые подстановки

Два письма - два активных шаблона на FEEDBACK_FORM. Лишняя копия - поле "E-Mail, на который дублируются исходящие" (all_bcc) в главном модуле. main.feedback без EVENT_MESSAGE_ID при нескольких шаблонах шлёт все активные. В OnBeforeEventAdd можно задать message_id в коде, если в админке второй шаблон отключить нельзя.

  • Один активный шаблон на EVENT_NAME и сайт.
  • Очистите дублирование исходящих в главном модуле.
  • Задайте EVENT_MESSAGE_ID, если второй шаблон нужен только в архиве.
  • Сверьте #SALE_EMAIL# с настройками магазина.

При SUCCESS_EXEC = Y виноват не SMTP, а число шаблонов или all_bcc. Порядок: список шаблонов → главный модуль → транспорт из гайда B17.

Делайте: после установки с маркетплейса отфильтруйте тип события и отключите дубликаты. Не делайте: не держите два активных шаблона на один ящик.

Протестируйте шаблон на свой e-mail и гляньте b_event

Тест: временно свой e-mail в "Кому", заявка или тестовый заказ, проверка макросов в теме и теле, возврат боевого адреса. В журнале "Почтовые и СМС события → Журнал" ищите SUCCESS_EXEC = Y. В D7 тот же сценарий через Event::send.

  1. Сохраните копию текущего "Кому" в заметке.
  2. Укажите свой ящик, сохраните шаблон.
  3. Инициируйте событие с фронта (форма, тестовый заказ).
  4. Убедитесь, что пришло одно письмо, макросы раскрыты, кодировка кириллицы в порядке.
  5. Откройте "Почтовые и СМС события → Журнал" или последние строки b_event: SUCCESS_EXEC = Y значит, что очередь отработала (детальный разбор ошибок транспорта - в гайде по SMTP).
  6. Верните "Кому" на рабочий адрес менеджера.

Нет записи в журнале - ищите неактивный шаблон или SITE_ID. Есть Y, но нет письма - SMTP. Перед рекламой - чек-лист после запуска.

Делайте: запишите ID шаблона и EVENT_NAME в паспорт проекта. Не делайте: не оставляйте личный ящик в "Кому" на проде.

Отделите тему оформления TYPE=mail от шаблона сайта

Mail-тема в /bitrix/templates/ (TYPE mail в description.php) оборачивает тело в #WORK_AREA#. Шаблон витрины (TYPE site) на сервисные письма не влияет. Цепочка: тело в почтовом шаблоне → оболочка mail-темы → отправка. Если html "сжимается", проверьте mail-тему. Для простых уведомлений хватит BODY_TYPE = text.

Делайте: тестируйте вёрстку в Gmail и Mail.ru. Не делайте: не копируйте шапку сайта в письмо без адаптации под почтовые клиенты.

Пройдите чек-лист: одно письмо, верные макросы, связка с SMTP

Короткий контроль перед сдачей проекта заказчику:

  1. На каждый используемый EVENT_NAME (форма, заказ, регистрация) - один активный шаблон на сайт.
  2. В тестовом письме нет нераскрытых #ПОДСТАНОВОК#.
  3. #SALE_EMAIL# и From совпадают с настройками магазина и SMTP.
  4. main.feedback: при нескольких шаблонах задан EVENT_MESSAGE_ID.
  5. Главный модуль: нет лишнего дублирования исходящих на чужой ящик.
  6. Журнал b_event после теста показывает SUCCESS_EXEC = Y.
  7. Исходящий канал проверен по инструкции по почте и SMTP.

Когда шаблоны приведены в порядок, а письма всё равно ведут себя странно на уровне доставки, напишите нам - разберём цепочку событие → шаблон → очередь вместе. Похожие кейсы с формами и магазинами - в портфолио.

Автор: Максим Мольков, Senior-разработчик 1С-Битрикс.
Источники: docs.1c-bitrix.ru (работа с почтой), справка по почтовым шаблонам, учебный курс 1С-Битрикс.

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

Чем почтовое событие отличается от почтового шаблона в 1С-Битрикс?

Событие - тип (FEEDBACK_FORM). Шаблон - текст письма и поля адресов. Без активного шаблона SMTP не поможет.

Почему с формы приходят два одинаковых письма?

Откройте "Почтовые шаблоны", фильтр по FEEDBACK_FORM и сайту. Отключите лишний активный шаблон, проверьте all_bcc и EVENT_MESSAGE_ID у main.feedback. Одна тестовая заявка должна дать одно письмо.

Где изменить текст письма о новом заказе?

Шаблон SALE_NEW_ORDER для вашего LID: тема и "Сообщение", макросы из подсказки. Тестовый заказ на свой ящик.

Какие макросы есть у FEEDBACK_FORM и SALE_NEW_ORDER?

Список в типе события и внизу формы шаблона. Не придумывайте имена: если макроса нет в типе, в письме останутся "решётки".

Как быстро проверить шаблон без правки формы на сайте?

Свой e-mail в "Кому", событие с сайта, проверка, возврат адреса. В коде - Event::send.

Шаблон активен, но приходит письмо не от того сайта - что проверить?

Сверьте LID шаблона с SITE_ID формы. На многосайтовости - отдельные шаблоны или язык.

Читайте также

Интеграции с 1С и API
949 6 мин.

Как настроить регистрацию и личный кабинет покупателя на 1С-Битрикс?

Пошаговая настройка регистрации на сайте битрикс: Главный модуль, main.register, system.auth.form и sale.personal.section с историей заказов и 152-ФЗ.
Интеграции с 1С и API
679 15 мин.

Что такое компонент в Битриксе и как он работает

Каждый разработчик, впервые столкнувшийся с Битриксом, проходит через своеобразный обряд посвящения. Вначале кажется, что это просто CMS, где можно поправить HTML в визуальном редакторе или дописать пару строк CSS. Но однажды наступает момент, когда нужно изменить логику вывода новостей, отфильтровать товары по хитрому свойству или добавить на страницу нечто совершенно новое. И тут он впервые слышит это слово — «компонент». Для многих этот момент становится стеной. Система, казавшаяся понятной, вдруг превращается в черный ящик, полный непонятных файлов и странных переменных. Но стоит лишь раз заглянуть под капот, как эта стена рассыпается, превращаясь в набор удивительно логичных и мощных строительных блоков. Понимание компонентов — это тот самый щелчок, после которого разработка на Битрикс из мучения превращается в творчество.

Эта статья — ваш проводник в мир компонентов «1С-Битрикс». Мы не будем сыпать сухими терминами из документации. Вместо этого мы совершим путешествие: от философии, заложенной в эту архитектуру, до мельчайших деталей её работы. Мы разберем компонент на атомы — его файлы, логику, шаблон, параметры — и соберем обратно, чтобы вы не просто знали, что это, но и глубоко понимали, почему это работает именно так. Это знание — ключ к эффективной и профессиональной разработке на Битрикс.

Интеграции с 1С и API
606 2 мин.

Установка Composer в 1С-Битрикс

Установка Composer в проекте на 1С-Битрикс требует учета особенностей платформы, чтобы обеспечить корректную работу и интеграцию с системой.