Почти всё, что сайт на 1С-Битрикс отправляет по e-mail, проходит через почтовые события и привязанные к ним шаблоны писем. Разберём, как эта система устроена и как её настроить под свои задачи.
Как устроена система почтовых событий
В 1С-Битрикс отправка писем построена на трёх сущностях, которые важно не путать:
- Тип почтового события — «класс» события с фиксированным набором доступных полей (макросов). Например,
NEW_ORDERилиUSER_INFO. - Шаблон письма — конкретный текст письма (тема, тело, отправитель, получатель), привязанный к типу события. У одного типа может быть несколько шаблонов.
- Почтовое событие — сам факт отправки: когда в коде вызывается событие определённого типа, система находит все активные шаблоны этого типа и ставит письма в очередь.
Когда модуль (Интернет-магазин, Информационные блоки, Главный модуль и т. д.) инициирует отправку, он передаёт массив значений полей. Битрикс подставляет эти значения в макросы шаблона и кладёт готовое письмо в таблицу очереди b_event. Реальную рассылку выполняет агент по расписанию.
Где найти настройки в админке
Все элементы системы находятся в одном разделе панели управления:
- Откройте Настройки → Настройки продукта → Почтовые события.
- Вкладка Типы почтовых событий — список всех типов с их символьными кодами и описанием доступных полей.
- Вкладка Почтовые шаблоны — список всех шаблонов писем. Здесь их создают, редактируют, включают и отключают.
Список шаблонов удобно фильтровать по сайту, по типу события и по активности. Колонка Активность показывает, будет ли шаблон реально участвовать в отправке: неактивный шаблон существует, но письма по нему не формируются.
Структура шаблона письма и его поля
Карточка шаблона (Почтовые шаблоны → изменить) содержит несколько групп полей. Ключевые из них:
| Поле | Назначение |
|---|---|
| Тип почтового события | К какому типу привязан шаблон — определяет набор доступных макросов. |
| Сайт | Для каких сайтов действует шаблон (в многосайтовой конфигурации). |
| Активность | Участвует ли шаблон в отправке. |
| Email отправителя / получателя | Адреса From и To; можно использовать макросы, например #EMAIL_FROM#. |
| Тема письма | Строка темы, поддерживает макросы. |
| Тип сообщения | Text или HTML — формат тела письма. |
| Текст сообщения | Тело письма с макросами полей события. |
Дополнительные заголовки письма (например, Reply-To, Content-Type) задаются в поле Дополнительные поля заголовка письма. Список доступных макросов конкретного типа события показан прямо под формой редактирования — ориентируйтесь на него, а не на память.
Макросы: как подставляются значения полей
Внутри шаблона данные подставляются через макросы вида #ИМЯ_ПОЛЯ#. Набор макросов зависит от типа события. Например, у события NEW_ORDER доступны #ORDER_ID#, #ORDER_DATE#, #PRICE#, #EMAIL# и другие.
- Служебные поля есть у любого шаблона:
#EMAIL_FROM#,#EMAIL_TO#,#BCC#,#DEFAULT_EMAIL_FROM#,#SERVER_NAME#. - Если в теле встречается макрос, которого нет среди полей события, он останется в письме как есть — это частый источник «непонятных решёток» в тексте.
- Значение по умолчанию для адреса отправителя берётся из константы
DEFAULT_EMAIL_FROM(Настройки → Настройки продукта → Настройки модулей → Главный модуль).
Для HTML-писем не забывайте про кодировку и корректный Content-Type в дополнительных заголовках, иначе часть клиентов покажет письмо в неправильной кодировке.
Создание и редактирование шаблона
Чтобы добавить новый шаблон под существующий тип события:
- Перейдите в Настройки → Настройки продукта → Почтовые события → Почтовые шаблоны и нажмите Добавить шаблон.
- Выберите нужный тип почтового события и сайт.
- Заполните адреса отправителя и получателя, тему и тело письма, используя доступные макросы.
- Укажите тип сообщения (Text или HTML) в соответствии с содержимым тела.
- Установите флаг Активность и сохраните.
Часто под один тип события заводят несколько шаблонов: например, письмо клиенту и отдельное уведомление менеджеру. Оба будут отправлены при возникновении события. Чтобы временно отключить одно из писем, снимите у него активность, а не удаляйте шаблон.
Отладка отправки писем
Если письмо не приходит, проверяйте по цепочке от очереди к транспорту:
- Убедитесь, что событие вообще возникло: письмо должно попасть в очередь. Список очереди — Настройки → Инструменты → Почтовые сообщения (таблица
b_event). - Проверьте, что письма из очереди реально отправляются агентом. За рассылку отвечает агент главного модуля; статус агентов — Настройки → Настройки продукта → Агенты.
- Посмотрите способ отправки: встроенная функция
mail()или внешний SMTP. Настройка транспорта — в параметрах Главного модуля. - Проверьте, что у нужного типа события есть хотя бы один активный шаблон для нужного сайта.
- Ошибки транспорта и отправки фиксируются в Журнале событий сайта — начните диагностику с него.
Для контроля доставки полезно временно направить копию письма на служебный адрес через макрос #BCC# или скрытую копию в шаблоне.
Частые ошибки
Типичные проблемы при работе с почтовыми событиями:
- Шаблон неактивен. Самая частая причина «письма не приходят» — снятый флаг активности или шаблон привязан не к тому сайту.
- Дубли писем. У одного типа события два активных одинаковых шаблона — клиент получает письмо дважды. Проверяйте список шаблонов по типу.
- Нерасшифрованные макросы. В письме видны
#POLE#— макрос отсутствует в наборе полей этого типа события или опечатка в имени. - Битая кодировка HTML-письма. Не указан или неверен
Content-Typeв дополнительных заголовках при типе сообщения HTML. - Письма копятся в очереди. Не работает агент отправки или на сервере отключён cron/агенты на хитах — очередь
b_eventрастёт, но не рассылается. - Письма уходят в спам. Адрес отправителя не с домена сайта, отсутствуют SPF/DKIM — решается настройкой внешнего SMTP и DNS-записей.
Итог
Почтовая подсистема 1С-Битрикс строится на связке «тип события → шаблон → событие». Тип задаёт доступные макросы, шаблон — конкретный текст и адреса, а событие в коде запускает отправку всех активных шаблонов своего типа.
Для стабильной работы держите под контролем три вещи: активность и привязку шаблонов к сайту, корректность макросов и кодировки и работоспособность агента отправки и транспорта. Диагностику проблем всегда начинайте с очереди писем и Журнала событий.