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

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

Почтовая система - это технология предназначенная для работы с 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-2018, «1С-Битрикс», 2018
Наверх