Почтовые события и шаблоны писем
Отправка писем строится на связке типов событий и почтовых шаблонов через метод Bitrix\Main\Mail\Event::send(). Задачи по умолчанию помещаются в очередь таблицы b_event и отправляются асинхронно, а при вызове критично указывать идентификатор сайта (LID) для правильного выбора шаблона и языковых настроек.
Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.
Что нужно понимать
-
1
Типы почтовых событий и шаблоны
-
2
Event::send и sendImmediate
-
3
Отправка через SMTP и очередь писем
-
4
Модуль sender и рассылки
Материалы
Официальная документация
-
Конфигурация ядра: раздел «Отправка писем» Новая дока
Проверь себя
Заказчик говорит, что письма о заказах приходят через десять минут, а иногда не приходят. С чего начать?
С таблицы b_event: Event::send() кладёт событие в очередь, а разбирает её CEvent::CheckEvents() в конце хита или cron_events.php по cron. Столбец SUCCESS_EXEC покажет судьбу письма: N — не обрабатывалось, 0 — не нашёлся шаблон, F — не отправилось.
Чем опасен sendImmediate() в обработчике формы?
Он отправляет письмо сразу, минуя очередь, и падение SMTP становится ошибкой пользователя в момент отправки формы. Для отладки и синхронных задач подходит, для форм лучше send() с очередью.
На многосайтовом проекте письмо ушло на другом языке и с чужим шаблоном. Что забыли передать?
LID — идентификатор сайта. Шаблон, язык интерфейса и кодировка письма берутся из сайта события; без явного LID система подберёт не тот шаблон.
Как на тестовом контуре запретить письма реальным клиентам, не трогая шаблоны?
Константа ONLY_EMAIL в init.php: класс Mail проверяет её и перенаправляет все письма на указанный адрес независимо от значений в шаблонах.
Не сходится?
Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить