Почтовая система в 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. Проблемы с отправкой почты
Если письма не доходят до получателя, рекомендуется проверить следующие моменты:
- Убедитесь, что в таблице
b_event
нет накопленных неподтвержденных сообщений. - Используйте запрос для очистки очереди сообщений, если возникли проблемы с отправкой:
DELETE FROM b_event;
Внимательно проверьте настройки почтового сервера, особенно если используется SMTP. Ошибки в поле FROM могут привести к тому, что письма не будут отправляться.
6. Очистка очереди сообщений
Если после исправления ошибок с почтой остаются непродолженные письма в очереди, которые могут быть отправлены пользователям (например, письма старых заказов), их нужно удалить. Для этого используйте SQL-запрос:
DELETE FROM b_event;
Этот запрос удалит все сообщения, которые ещё не были отправлены, и предотвратит их отправку пользователям.
Заключение
Система почты в 1С-Битрикс предоставляет мощные инструменты для управления отправкой писем через почтовые события и шаблоны. Однако для корректной работы почтовой системы важно тщательно настроить все компоненты, проверять статус отправленных сообщений и устранять возможные ошибки на стороне сервера.
Понимание работы почтовых событий и шаблонов поможет вам эффективно использовать возможности 1С-Битрикс и обеспечить бесперебойную отправку уведомлений вашим пользователям.