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

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

Почтовый шаблон в «1С-Битрикс: Управление сайтом» — запись в админке «Почтовые и СМС события → Почтовые шаблоны». Она задаёт тему, поля «От кого / Кому» и тело для типа события (FEEDBACK_FORM, SALE_NEW_ORDER). Макросы вроде #DEFAULT_EMAIL_FROM# подставляются из настроек сайта; в облачной CRM эти шаблоны не настраиваются. Откройте список шаблонов для вашего EVENT_NAME, оставьте один активный на сайт и заполните e-mail сайта — так закроете дубли и пустой From.

Три уровня, которые часто смешивают в выдаче: CMS на вашем хостинге (раздел «Почтовые и СМС события»), облачная CRM (другой продукт) и почтовое событие внутри CMS — имя ситуации (форма, заказ), к которому привязан шаблон. Шаблон — не транспорт: действие на сайте → CEvent::Send / Event::send → очередь b_event → SMTP. Если писем нет совсем, сначала настройте исходящую почту; если письмо есть, но текст или From неверные — правьте шаблоны.

Разберите, что такое почтовый шаблон и когда он нужен

Почтовое событие (тип) хранит список допустимых макросов: FEEDBACK_FORM для формы, SALE_NEW_ORDER для заказа. Шаблон - конкретное письмо: кто отправитель, кому, тема, тело. Без активного шаблона на вашем сайте (LID) событие уйдет в очередь, но письма не будет. Нужен шаблон, когда меняете текст уведомлений, From, макросы или ловите дубли после установки решения. Не нужен, если письма не доходят при пустой очереди или SUCCESS_EXEC = N из-за SMTP - это зона транспорта, не текста.

Делайте: начинайте с типа события и колонки «Шаблоны». Не делайте: не ищите эти настройки в облачной CRM, если сайт на CMS.

Сравните симптомы: шаблон, событие или SMTP

Концептуальная иллюстрация «выбор пути»: Разберите, когда править шаблоны на CMS, а не SMTP

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

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

Делайте: для заявок сверьте FEEDBACK_FORM с настройкой формы обратной связи main.feedback. Для модуля "Веб-формы" смотрите, не создал ли он лишний шаблон - в гайде по результатам веб-форм. Не делайте: не крутите пароль SMTP, пока не проверили один активный шаблон и e-mail сайта.

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

Схема 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. При многосайтовости проверьте язык шаблона.

После установки магазина или веб-форм установщик часто добавляет второй шаблон, не отключая старый — на практике владелец получает два письма, хотя форма пишет «отправлено». Типичная ошибка: два активных шаблона на один EVENT_NAME. Диагностика: форма → FEEDBACK_FORM → N активных шаблонов → N писем.

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

Задайте #DEFAULT_EMAIL_FROM# и default email from в настройках сайта

На форумах dev.1c-bitrix.ru макрос ищут по английскому default email from. В админке он задаётся через e-mail сайта и главный модуль. В шаблоне в поле «От кого» обычно пишут #DEFAULT_EMAIL_FROM#.

  1. Откройте "Настройки → Настройки продукта → Сайты", выберите сайт (s1 и т.д.), вкладка с полем E-mail - укажите рабочий адрес на вашем домене (например info@example.ru). Прямой путь: /bitrix/admin/site_edit.php.
  2. Проверьте "Настройки → Настройки продукта → Настройки модулей → Главный модуль": поле e-mail отправителя по умолчанию, если используется в вашей сборке.
  3. В карточке почтового шаблона в "От кого" оставьте #DEFAULT_EMAIL_FROM# или для заказов #SALE_EMAIL# из модуля "Интернет-магазин".
  4. Сохраните шаблон и отправьте тестовое событие - в заголовке From должен быть ваш домен, не localhost.
  5. Если From все еще чужой при верном шаблоне - сверьте профиль SMTP в гайде B17, не меняя текст письма.

Пустой e-mail сайта при #DEFAULT_EMAIL_FROM# в шаблоне - частая причина noreply@сервер или подстановки из PHP mail(). Заполните поле в сайте - и макрос подтянется в каждое письмо с этим шаблоном.

Делайте: используйте ящик на домене сайта. Не делайте: не хардкодьте личный Gmail в "От кого", если потом планируете SPF/DKIM на корпоративный домен.

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

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

В карточке: "От кого", "Кому", "Тема", 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. Убедитесь: одно письмо, макросы раскрыты, кириллица в порядке, From с вашего домена.
  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) на сервисные письма не влияет. Если html "сжимается", проверьте mail-тему. Для простых уведомлений хватит BODY_TYPE = text.

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

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

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

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

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

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

Где настроить default email from и макрос #DEFAULT_EMAIL_FROM# в Битрикс CMS?

Заполните поле E-mail в «Настройки → Настройки продукта → Сайты» для нужного LID (site_edit.php). В шаблоне в «От кого» укажите #DEFAULT_EMAIL_FROM# — при отправке подставится адрес сайта. Английский запрос default email from из форума dev.1c-bitrix.ru относится к этому же полю в CMS. Для заказов часто #SALE_EMAIL# из модуля «Интернет-магазин».

Чем почтовое событие отличается от почтового шаблона?

Событие (CEventType) - тип с именем FEEDBACK_FORM и списком макросов. Шаблон (CEventMessage) - конкретное письмо: From, To, тема, тело. Без активного шаблона на сайте SMTP не поможет.

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

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

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

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

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

Полный список - в карточке типа события FEEDBACK_FORM и внизу формы редактирования шаблона. Системные: #DEFAULT_EMAIL_FROM#, #SITE_NAME#, #SERVER_NAME#. Не придумывайте имена: если макроса нет в типе, в письме останутся решетки.

Письмо ушло, но From с чужого домена - что проверить первым?

E-mail в настройках сайта и значение в "От кого" шаблона (#DEFAULT_EMAIL_FROM#). Если там верно, а From все равно чужой - смотрите профиль SMTP в отдельном гайде по транспорту, не текст шаблона.

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

Временно свой e-mail в поле "Кому" шаблона, инициируйте событие с сайта, проверьте подстановки, верните адрес. В коде - Event::send с тем же EVENT_NAME.

Обсудить вашу задачу

Было полезно?

Поставьте лайк, если статья помогла разобраться.

Поделиться статьёй

Отправьте тому, кому это пригодится.

Telegram ↗ MAX ↗ ВКонтакте ↗ Одноклассники ↗
Все статьи ↗

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

Структура шаблонов сайта в Битриксе и поиск header footer

Как настроить скидки и промокоды на 1С-Битрикс: правила корзины и купоны