Руководство по работе с почтовой системой в 1С-Битрикс

Почтовая система в 1С-Битрикс является важным инструментом для отправки уведомлений и сообщений с вашего сайта. В этом руководстве подробно рассмотрим, как настроить почтовую систему, создать почтовые события, шаблоны и проверять статус отправки сообщений.

Работа с почтовой системой в 1С-Битрикс

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

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

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


    <?php
    $eventType = new CEventType;
    $eventType->Add(array(
        "EVENT_NAME"  => "USER_REGISTRATION", // Название события
        "NAME"        => "Регистрация нового пользователя", // Описание события
        "LID"         => "ru", // Языковая версия
        "DESCRIPTION" => "
            #USER_NAME# - имя пользователя
            #USER_EMAIL# - email пользователя
        "
    ));
    ?>
    

В этом примере создается тип почтового события USER_REGISTRATION, которое будет использоваться для отправки уведомлений при регистрации нового пользователя.

2. Создание почтового шаблона

Почтовые шаблоны определяют структуру письма, которое будет отправлено пользователю. Каждый шаблон может быть связан с определённым типом почтового события.

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


    <?php
    $templateFields = array(
        "ACTIVE"      => "Y", // Активность шаблона
        "EVENT_NAME"  => "USER_REGISTRATION", // Тип почтового события
        "LID"         => array("ru", "en"), // Языки
        "EMAIL_FROM"  => "no-reply@site.ru", // От кого
        "EMAIL_TO"    => "#USER_EMAIL#", // Кому
        "BCC"         => "", // Скрытая копия
        "SUBJECT"     => "Подтверждение регистрации", // Тема письма
        "BODY_TYPE"   => "text", // Тип тела письма
        "MESSAGE"     => "
            Здравствуйте, #USER_NAME#!
            Благодарим за регистрацию на нашем сайте.
        "
    );

    $eventMessage = new CEventMessage;
    $eventMessage->Add($templateFields);
    ?>
    

Здесь создается почтовый шаблон для события USER_REGISTRATION, который отправляет письмо на email пользователя с подтверждением регистрации.

3. Создание почтового события

Почтовое событие отвечает за отправку письма по заданному шаблону. Для отправки события используется функция CEvent::Send.

Пример кода для отправки почтового события:


    <?php
    $eventFields = array(
        "USER_NAME"  => "Иван Иванов", // Имя пользователя
        "USER_EMAIL" => "user@example.com" // Email пользователя
    );

    CEvent::Send("USER_REGISTRATION", "ru", $eventFields);
    ?>
    

В этом примере отправляется событие USER_REGISTRATION на указанный email с данными о пользователе.

4. Проверка статуса отправки писем

Когда письмо отправляется, информация о его статусе сохраняется в таблице b_event. Это позволяет отслеживать, были ли сообщения успешно отправлены, и выявлять проблемы при отправке.

Чтобы проверить статус отправки писем, используйте SQL-запрос:


    SELECT * FROM b_event ORDER BY DATE_EXEC DESC;
    

Статусы отправки сообщений:

  • SUCCESS_EXEC = Y — сообщение успешно отправлено.
  • SUCCESS_EXEC = N — событие не обработано, письмо не отправлено.
  • SUCCESS_EXEC = 0 — не найден почтовый шаблон.
  • SUCCESS_EXEC = F — ошибка при отправке письма, необходимо проверить логи.
  • SUCCESS_EXEC = P — часть писем успешно отправлена, часть — нет.

5. Проблемы с отправкой почты

Если письма не доходят до получателя, рекомендуется проверить следующие моменты:

  1. Убедитесь, что в таблице b_event нет накопленных неподтвержденных сообщений.
  2. Используйте запрос для очистки очереди сообщений, если возникли проблемы с отправкой:

    DELETE FROM b_event;
    

Внимательно проверьте настройки почтового сервера, особенно если используется SMTP. Ошибки в поле FROM могут привести к тому, что письма не будут отправляться.

6. Очистка очереди сообщений

Если после исправления ошибок с почтой остаются непродолженные письма в очереди, которые могут быть отправлены пользователям (например, письма старых заказов), их нужно удалить. Для этого используйте SQL-запрос:


    DELETE FROM b_event;
    

Этот запрос удалит все сообщения, которые ещё не были отправлены, и предотвратит их отправку пользователям.

Заключение

Система почты в 1С-Битрикс предоставляет мощные инструменты для управления отправкой писем через почтовые события и шаблоны. Однако для корректной работы почтовой системы важно тщательно настроить все компоненты, проверять статус отправленных сообщений и устранять возможные ошибки на стороне сервера.

Понимание работы почтовых событий и шаблонов поможет вам эффективно использовать возможности 1С-Битрикс и обеспечить бесперебойную отправку уведомлений вашим пользователям.

Теги:  почтовая система, настройка почты, почтовые события, шаблоны писем, отправка уведомлений

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Разработка корпоративного сайта

от 7 дней

от 40 000 рублей

Разработка сайта без системы оплаты заказов через корзину

* стоимость зависит от наличия верстки, использования готового решения и т.д.

Лечение сайтов от вирусов

восстановление сайта и подъем версии PHP

от 25 000 рублей
Лечение сайтов на решениях АСПРО и прочих.

* полный комплекс лечения проекта и закрытия дыр

Модули и компоненты для «1С-Битрикс»

оценка производится на основе предоставленного Технического Задания

от 20 000 рублей
Разработка дополнительных модулей для 1С-Битрикс, расширение функционала, внедрение любых решений, требующихся для выполнения ваших бизнес-задач.

* стоимость зависит от конкретной задачи, ее объема и сложности выполняемых работ.