Блог Горошко Андрея 1C-Битрикс Отправка почты в Битрикс: CEvent, Почтовые шаблоны и События

Отправка почты в Битрикс: CEvent, Почтовые шаблоны и События

Средний рейтинг
5 из 5 звезд. 1 голосов.

Отправка email-уведомлений (о регистрации, новом заказе, сообщении из формы) — базовая потребность любого сайта. В Битрикс для этого реализована гибкая система, состоящая из трех частей:

  1. Тип почтового события: Определяет набор переменных (#FIELD_NAME#), которые можно использовать в письме.
  2. Почтовый шаблон: Конкретный текст письма (тема, тело), привязанный к типу события.
  3. Вызов CEvent::Send(): PHP-код, который инициирует событие и передает в него конкретные значения для переменных.

Этот подход позволяет контент-менеджерам редактировать тексты писем через админку, не трогая программный код.

Шаг 1: Создание Типа почтового события

Это «контракт» между программистом и контент-менеджером.

  1. Перейдите в Настройки -> Настройки продукта -> Почтовые события -> Типы почтовых событий.
  2. Нажмите «Добавить тип».
  3. Тип события: Придумайте уникальный символьный код, например, CUSTOM_FEEDBACK_FORM.
  4. Название и Описание: Заполните поля так, чтобы было понятно, за что отвечает это событие. В «Описании» перечислите все переменные, которые вы будете передавать из кода, например:codeCode#USER_NAME# - Имя пользователя #USER_EMAIL# - Email пользователя #MESSAGE# - Текст сообщения #SALE_EMAIL# - Email отдела продаж (из настроек)
  5. Сохраните.

Шаг 2: Создание Почтового шаблона

Это уже сам текст письма.

  1. Перейдите во вкладку «Почтовые шаблоны» на той же странице или через меню.
  2. Нажмите «Добавить шаблон».
  3. Сайт: Выберите сайт, к которому привязан шаблон.
  4. Тип почтового события: Выберите из списка наш тип [CUSTOM_FEEDBACK_FORM].
  5. От кого/Кому: Заполните адреса. Можно использовать переменные, например, поле «Кому» может быть #USER_EMAIL# или #SALE_EMAIL#.
  6. Тема: Новое сообщение с сайта #SITE_NAME#.
  7. Тело письма (сообщение):codeHtmlЗдравствуйте! Новое сообщение с формы обратной связи. Имя: #USER_NAME# Email: #USER_EMAIL# Сообщение: #MESSAGE# --- Письмо сгенерировано автоматически.
  8. Сделайте шаблон активным и сохраните.

Шаг 3: Вызов события из PHP-кода — CEvent::Send

Теперь, когда вся настройка в админке готова, мы можем инициировать отправку письма из любого места в коде (например, из обработчика формы).

Синтаксис:
CEvent::Send(«ТИП_СОБЫТИЯ», «ID_САЙТА», $arFields);

// Данные, полученные из формы
$userName = "Иван Петров";
$userEmail = "ivan@test.com";
$message = "Это мое тестовое сообщение.";

// Получаем email администратора из настроек главного модуля
$saleEmail = COption::GetOptionString("main", "email_from");

// 1. Формируем массив полей, которые мы описали в типе события
$arEventFields = [
    "USER_NAME"  => $userName,
    "USER_EMAIL" => $userEmail,
    "MESSAGE"    => $message,
    "SALE_EMAIL" => $saleEmail
];

// 2. Определяем ID сайта
$siteId = "s1"; // или SITE_ID, если доступна константа

// 3. Вызываем отправку
CEvent::Send("CUSTOM_FEEDBACK_FORM", $siteId, $arEventFields);

echo "Событие для отправки письма создано.";

Что происходит после вызова CEvent::Send?

  • Создается запись в таблице b_event.
  • Письмо не отправляется мгновенно. Оно будет отправлено либо при следующем хите пользователя, либо при следующем запуске cron-агента, в зависимости от настроек системы.

Для немедленной отправки (например, для отладки) используется метод CEvent::SendImmediate().

Вывод:
Система почтовых событий Битрикс очень гибкая и удобная.

Разделив логику на три части (тип, шаблон, вызов), вы создаете легко поддерживаемый и масштабируемый функционал.

Программист отвечает только за вызов CEvent::Send с правильными данными, а контент-менеджер может в любой момент изменить текст письма, не привлекая разработчика.

CEvent, CEvent::Send, почтовые события, почтовые шаблоны, Битрикс почта, отправка email, NEW_USER.

Мой рейтинг:

Добавить комментарий

Related Post

Bitrix как убрать заказы из очереди на выгрузку с сайта в 1СBitrix как убрать заказы из очереди на выгрузку с сайта в 1С

Средний рейтинг Еще нет оценок В данной статье мы рассмотрим, как можно убрать заказы из очереди на выгрузку с сайта bitrix в 1С. Флаг EXTERNAL_ORDER используется для обозначения заказов, которые

Управление файлами в Битрикс с помощью CFile: Сохранение, ресайз и удалениеУправление файлами в Битрикс с помощью CFile: Сохранение, ресайз и удаление

Средний рейтинг Еще нет оценок Работа с файлами — неотъемлемая часть веб-разработки. В Битрикс для этого существует мощный класс CFile. Он не просто работает с файлами на диске, но и регистрирует

Отладка и Логирование в Битрикс: Инструменты разработчикаОтладка и Логирование в Битрикс: Инструменты разработчика

Средний рейтинг Еще нет оценок Ни один разработчик не может обойтись без инструментов отладки. В Битрикс есть несколько способов посмотреть, что происходит «под капотом», от самых простых до продвинутых. 1.