После установки решения или правки формы на почту падают два одинаковых письма — типичная проблема с дублями шаблонов. В теме остаются сырые #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
Шаблоны правят, когда письмо доходит, но содержание неверное: дубли, пустые макросы, 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 сайта.
Откройте админку и свяжите тип события с шаблоном
Точка входа: "Настройки → Настройки продукта → Почтовые и СМС события → Почтовые шаблоны". В "Типах почтовых событий" видно макросы для FEEDBACK_FORM, SALE_NEW_ORDER и других имен. Колонка "Шаблоны" сразу показывает дубли после установки решения или модуля "Веб-формы".
- Откройте "Типы почтовых события" и найдите EVENT_NAME (для стандартной формы - FEEDBACK_FORM).
- В колонке "Шаблоны" посчитайте записи на один тип.
- В "Почтовые шаблоны" отфильтруйте по типу события и сайту (LID: s1, s2).
- Оставьте галочку "Активен" только у одного шаблона на тип и сайт.
- Запомните ID шаблона для EVENT_MESSAGE_ID у main.feedback.
- При многосайтовости проверьте язык шаблона.
После установки магазина или веб-форм установщик часто добавляет второй шаблон, не отключая старый — на практике владелец получает два письма, хотя форма пишет «отправлено». Типичная ошибка: два активных шаблона на один EVENT_NAME. Диагностика: форма → FEEDBACK_FORM → N активных шаблонов → N писем.
Делайте: деактивируйте лишнее, не удаляйте сразу. Не делайте: не держите два активных шаблона "для теста" на одном сайте.
Задайте #DEFAULT_EMAIL_FROM# и default email from в настройках сайта
На форумах dev.1c-bitrix.ru макрос ищут по английскому default email from. В админке он задаётся через e-mail сайта и главный модуль. В шаблоне в поле «От кого» обычно пишут #DEFAULT_EMAIL_FROM#.
- Откройте "Настройки → Настройки продукта → Сайты", выберите сайт (s1 и т.д.), вкладка с полем E-mail - укажите рабочий адрес на вашем домене (например info@example.ru). Прямой путь: /bitrix/admin/site_edit.php.
- Проверьте "Настройки → Настройки продукта → Настройки модулей → Главный модуль": поле e-mail отправителя по умолчанию, если используется в вашей сборке.
- В карточке почтового шаблона в "От кого" оставьте #DEFAULT_EMAIL_FROM# или для заказов #SALE_EMAIL# из модуля "Интернет-магазин".
- Сохраните шаблон и отправьте тестовое событие - в заголовке From должен быть ваш домен, не localhost.
- Если From все еще чужой при верном шаблоне - сверьте профиль SMTP в гайде B17, не меняя текст письма.
Пустой e-mail сайта при #DEFAULT_EMAIL_FROM# в шаблоне - частая причина noreply@сервер или подстановки из PHP mail(). Заполните поле в сайте - и макрос подтянется в каждое письмо с этим шаблоном.
Делайте: используйте ящик на домене сайта. Не делайте: не хардкодьте личный Gmail в "От кого", если потом планируете SPF/DKIM на корпоративный домен.
Отредактируйте поля шаблона, макросы и формат письма
В карточке: "От кого", "Кому", "Тема", BODY_TYPE (text|html), "Сообщение". Макрос #FIELD# - из полей события; #DEFAULT_EMAIL_FROM#, #SITE_NAME#, #SERVER_NAME# - из настроек сайта; #SALE_EMAIL# - e-mail отдела продаж.
- Откройте почтовый шаблон из списка.
- "От кого": #DEFAULT_EMAIL_FROM# или #SALE_EMAIL# для заказов.
- "Кому": ящик менеджера или макрос по сценарию.
- Тема и тело - только макросы из подсказки типа события.
- html - для табличной верстки (до ~600 px).
- Сохраните с правильным 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.
- Сохраните копию текущего "Кому".
- Укажите свой ящик, сохраните шаблон.
- Инициируйте событие с фронта.
- Убедитесь: одно письмо, макросы раскрыты, кириллица в порядке, From с вашего домена.
- Журнал или b_event: SUCCESS_EXEC = Y - очередь отработала (ошибки транспорта - в SMTP-гайде).
- Верните "Кому" на рабочий адрес.
Нет записи - неактивный шаблон или 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
- На каждый EVENT_NAME - один активный шаблон на сайт.
- E-mail сайта заполнен, #DEFAULT_EMAIL_FROM# раскрывается в From.
- В тестовом письме нет нераскрытых #ПОДСТАНОВОК#.
- main.feedback: при нескольких шаблонах задан EVENT_MESSAGE_ID.
- Главный модуль: нет лишнего дублирования на чужой ящик.
- Журнал после теста: SUCCESS_EXEC = Y.
- Исходящий канал - по инструкции по почте и 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.
Было полезно?
Поставьте лайк, если статья помогла разобраться.
Поделиться статьёй
Отправьте тому, кому это пригодится.
Можно поделиться и фрагментом: выделите текст статьи.