Документация для разработчиков

Почтовая система

Почтовая система - это технология предназначенная для работы с E-Mail сообщениями на сайте.

Работа с почтовой системой состоит из следующих этапов:

  1. Создание типа почтового события. Тип почтового события может быть создан с использованием функции CEventType::Add, либо на странице Типы почтовых событий.
  2. Создание почтового шаблона. Создание почтового шаблона доступно в административном меню "Почтовые шаблоны", а также при использовании функции CEventMessage::Add.
  3. Создание почтового события. Почтовое событие может быть создано только функцией CEvent::Send.

В конце выполнения каждой страницы, будет автоматически вызвана функция CEvent::CheckEvents, основные задачи которой:

  1. выбрать из таблицы b_event необработанные почтовые события
  2. сгенерировать по ним E-Mail сообщения (письма)
  3. отправить их
  4. записать результат их отправки в таблицу b_event в поле SUCCESS_EXEC, используя одно из следующих обозначений:
    • Y - все письма по всем почтовым шаблонам были успешно отправлены
    • F - все письма по всем почтовым шаблонам не смогли быть отправлены
    • P - часть писем отправлена успешно, часть писем - безуспешно
    • 0 - почтовые шаблоны не были найдены
    • N - почтовое событие ещё не обрабатывалось функцией CEvent::CheckEvents

На отсылку писем можно повлиять изменяя следующие настройки главного модуля:

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


Пример создания типа почтового события

<?
$obEventType = new CEventType;
$obEventType->Add(array(
    "EVENT_NAME"    => "ADV_BANNER_STATUS_CHANGE",
    "NAME"          => "Изменился статус баннера",
    "LID"           => "ru",
    "DESCRIPTION"   => "
        #ID# - ID баннера
        #CONTRACT_ID# - ID контракта
        #TYPE_SID# - ID типа
        "
    ));
?>

Пример создания почтового шаблона

<?
$arr["ACTIVE"]      = "Y";
$arr["EVENT_NAME"]  = "ADV_BANNER_STATUS_CHANGE";
$arr["LID"]         = array("ru","en");
$arr["EMAIL_FROM"]  = "admin@site.ru";
$arr["EMAIL_TO"]    = "admin@site.ru";
$arr["BCC"]         = "";
$arr["SUBJECT"]     = "Изменен статус баннера #ID#";
$arr["BODY_TYPE"]   = "text";
$arr["MESSAGE"]     = "
Внимание! Статус баннера # #ID# изменен.
Тип баннера - #TYPE_SID#
ID контракта - #CONTRACT_ID#
";
$obTemplate = new CEventMessage;
$obTemplate->Add($arr);
?>

Пример создания почтового события

<?
$arFields = array(
    "ID"          => 124,
    "CONTRACT_ID" => 1,
    "TYPE_SID"    => "LEFT"
    );
CEvent::Send("ADV_BANNER_STATUS_CHANGE", array("ru", "en"), $arFields);
?>

См. также



© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх