Как отправить письмо из битрикс

Как отправить письмо из битрикс

Платформа Битрикс24 предоставляет гибкий механизм отправки email-сообщений, который можно использовать как вручную, так и автоматически – по заданным событиям. Это особенно актуально при интеграции с внешними сервисами, при построении цепочек уведомлений, а также для настройки пользовательских бизнес-процессов.

Для ручной отправки писем в административной части «1С-Битрикс: Управление сайтом» используется модуль Главный модуль (main). С помощью функции Event::send можно отправить письмо, указав тип почтового события, параметры и шаблон. Этот метод подходит для моментальной отладки или одноразовых отправок без необходимости создавать дополнительные компоненты.

Автоматизация отправки писем осуществляется через почтовые события или агенты. Например, вы можете подписаться на событие OnAfterUserAdd и отправить письмо новому пользователю после регистрации. Для этого регистрируется обработчик события в файле init.php или в модуле, где используется API AddEventHandler. Внутри обработчика вызывается метод Event::send с передачей необходимых данных.

Ключевая рекомендация – использовать шаблоны почтовых событий, настраиваемые через административный раздел. Это облегчает поддержку проекта: контент и структура писем меняются без вмешательства в код. Для каждого типа письма создается отдельный шаблон, а при отправке указывается его идентификатор или символьный код.

Настройка шаблона письма в разделе Почтовые события

Настройка шаблона письма в разделе Почтовые события

Перейдите в административную панель: НастройкиПочтовые событияШаблоны почтовых сообщений. Нажмите «Добавить шаблон» или выберите существующий для редактирования.

Выберите тип почтового события, к которому будет привязан шаблон. Например, NEW_ORDER или USER_REGISTRATION. Тип события должен соответствовать тому, что вызывается в вашем коде или компоненте.

Укажите e-mail отправителя и получателя. В поле «Кому» можно использовать макросы, например #EMAIL# для подстановки адреса пользователя из события. Поле «От кого» заполняется в формате Имя <email>.

Заполните тему письма и тело сообщения. В теле можно использовать макросы, доступные для выбранного типа события. Для их просмотра нажмите ссылку «Показать доступные поля» при редактировании шаблона.

Формат письма: выберите HTML, если требуется форматирование. Для корректной работы используйте стандартную HTML-разметку без внешних CSS.

Проверьте, чтобы шаблон был активным: установите галочку «Активен» перед сохранением. Нажмите «Сохранить» или «Применить».

После сохранения, при срабатывании события, указанное письмо будет автоматически отправлено с использованием этого шаблона.

Создание пользовательского почтового события через административную панель

Создание пользовательского почтового события через административную панель

Перейдите в административную часть сайта: НастройкиПочтовые событияТипы почтовых событий. Нажмите Добавить.

В поле Идентификатор укажите уникальное символьное имя события, например: NEW_CUSTOM_MESSAGE. Название и описание заполняются для удобства. Выберите язык, используемый в шаблоне.

Сохраните тип события. Далее перейдите во вкладку Почтовые шаблоны и создайте новый шаблон, связанный с только что добавленным типом. Укажите e-mail отправителя и получателя. В теле письма используйте макросы вида #USER_NAME#, #EMAIL#, которые вы будете передавать из кода.

Убедитесь, что шаблон активен, выберите нужный сайт и способ отправки (обычно – PHP).

После сохранения почтовое событие можно вызывать из PHP-кода с помощью:


CEvent::Send("NEW_CUSTOM_MESSAGE", SITE_ID, array(
"USER_NAME" => "Иван",
"EMAIL" => "user@example.com"
));

Если необходимо отправлять письмо при определённом действии, используйте обработчики событий или агенты в сочетании с вызовом CEvent::Send.

Ручная отправка письма с использованием функции CEvent::Send

Ручная отправка письма с использованием функции CEvent::Send

Функция CEvent::Send используется для отправки почтовых сообщений на основе заранее созданных шаблонов. Чтобы воспользоваться ею, необходимо заранее настроить почтовое событие и хотя бы один шаблон письма в административной панели Битрикс (Раздел: Настройки → Почтовые события).

Пример вызова функции:


CEvent::Send(
"NEW_ORDER", // Символический код почтового события
SITE_ID,     // Идентификатор сайта
array(       // Массив подстановок
"EMAIL_TO" => "user@example.com",
"ORDER_ID" => 123,
"ORDER_DATE" => "17.05.2025"
),
"N",          // Повторная отправка (N – не отправлять повторно)
"",           // ID шаблона (опционально)
""            // Файлы для вложения (опционально)
);

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

Для отправки с вложением используйте массив файлов следующим образом:


$arFiles = array(CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/upload/invoice.pdf"));
CEvent::Send(
"SEND_INVOICE",
SITE_ID,
array(
"EMAIL_TO" => "client@example.com",
"INVOICE_NUMBER" => "INV-5678"
),
"N",
"",
$arFiles
);

При необходимости логирования используйте CEventLog::Add сразу после вызова CEvent::Send, чтобы фиксировать факты отправки или ошибки. Это упростит отладку и аудит почтовых действий.

Функция возвращает true при успешной отправке и false в случае ошибки. Для контроля корректности интеграции рекомендуется проверять результат вызова в логике скрипта.

Автоматическая отправка письма при изменении элемента инфоблока

Автоматическая отправка письма при изменении элемента инфоблока

Для реализации автоматической отправки письма при изменении элемента инфоблока используйте обработчик события OnAfterIBlockElementUpdate. Это событие вызывается после сохранения изменений элемента инфоблока.

Подключите обработчик в файле /local/php_interface/init.php:


use Bitrix\Main\EventManager;
EventManager::getInstance()->addEventHandler(
"iblock",
"OnAfterIBlockElementUpdate",
"OnIBlockElementUpdateHandler"
);

Реализуйте функцию OnIBlockElementUpdateHandler в том же файле или в подключаемом модуле:


function OnIBlockElementUpdateHandler(&$arFields) {
if ($arFields["IBLOCK_ID"] == 5) { // ID нужного инфоблока
$element = CIBlockElement::GetByID($arFields["ID"])->GetNextElement();
if ($element) {
$props = $element->GetProperties();
$fields = $element->GetFields();
$emailTo = "recipient@example.com";
$subject = "Элемент инфоблока обновлён";
$message = "Обновлён элемент: " . $fields["NAME"] . "\n";
$message .= "ID: " . $fields["ID"] . "\n";
$message .= "Дата изменения: " . $fields["TIMESTAMP_X"] . "\n";
mail($emailTo, $subject, $message);
}
}
}

Убедитесь, что почтовая функция mail() настроена и работает на сервере. Для продакшена рекомендуется использовать event-driven API Bitrix, например, EventMessage::Send() с шаблоном почтового события.

Для повышения надёжности используйте CIBlockElement::GetList для получения состояния элемента до обновления, сравнивайте его с новыми значениями и отправляйте письмо только при изменении нужных полей.

Настройка отправки письма при регистрации нового пользователя

Откройте административную панель Битрикс и перейдите в раздел Настройки > Почтовые события. Найдите тип события NEW_USER – он используется при регистрации нового пользователя.

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

Выберите нужный сайт и укажите почтовые параметры:

Тип события NEW_USER
Отправитель например, info@вашдомен.ru
Получатель #EMAIL#
Тема Регистрация на сайте #SITE_NAME#

В теле письма используйте системные макросы:

#USER_ID# – ID пользователя

#LOGIN# – логин

#EMAIL# – email

#NAME# – имя

#LAST_NAME# – фамилия

#CHECKWORD# – код подтверждения

#PASSWORD# – сгенерированный пароль

#SITE_NAME# – название сайта

#SERVER_NAME# – домен

Сохраните шаблон и проверьте, активен ли он (галочка «Активен» должна быть установлена). Письмо будет автоматически отправляться при создании пользователя через форму регистрации или административную часть.

Для отправки по собственному событию можно воспользоваться функцией Event::send() из модуля main в пользовательском коде. Пример:

\Bitrix\Main\Mail\Event::send([
"EVENT_NAME" => "NEW_USER",
"LID" => "s1",
"C_FIELDS" => [
"EMAIL" => $userEmail,
"LOGIN" => $userLogin,
"NAME" => $userName,
// другие поля по необходимости
],
]);

Отладка и проверка отправленных писем в журнале почтовых событий

Для эффективной проверки отправки писем в Битрикс используйте встроенный журнал почтовых событий. Он фиксирует все попытки отправки писем, включая успешные и ошибочные.

  • Перейдите в административной панели в раздел Настройки > Журнал почтовых событий.
  • Используйте фильтр по дате, email получателя или событию для быстрого поиска конкретных писем.
  • Каждая запись содержит подробную информацию: статус отправки, шаблон события, адрес получателя, время, а также код ответа SMTP-сервера.

Для выявления ошибок обратите внимание на поля Статус и Описание ошибки. При кодах ошибок SMTP (например, 4xx или 5xx) проверьте корректность настроек почтового сервера и соответствие параметров письма требованиям SMTP.

  • При необходимости повторной отправки используйте кнопку Отправить заново, доступную в каждой записи.
  • Проверяйте шаблоны событий в разделе Настройки > Почтовые события > Шаблоны почтовых событий, чтобы исключить ошибки в переменных и форматировании.

Для расширенной отладки рекомендуется включить логирование почтового сервера (например, postfix или exim) на уровне сервера, что позволит сопоставить внутренние ошибки с сообщениями из журнала Битрикс.

Регулярный мониторинг журнала почтовых событий помогает обнаруживать сбои в интеграции и своевременно корректировать шаблоны, обеспечивая стабильную доставку писем.

Вопрос-ответ:

Как отправить письмо вручную в Битрикс из интерфейса?

Чтобы отправить письмо вручную, нужно зайти в раздел «CRM» или «Маркетинг», затем выбрать нужный шаблон письма и адресата. После этого в открывшемся окне можно отредактировать текст и нажать кнопку отправки. Такой способ подходит, если требуется оперативно связаться с конкретным клиентом или группой адресатов без настройки автоматических правил.

Какие события в Битрикс можно использовать для автоматической отправки писем?

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

Какие ограничения могут возникнуть при отправке писем по событию в Битрикс?

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

Как настроить шаблон письма для отправки из Битрикс по событию?

Для создания шаблона нужно перейти в раздел «Почтовые шаблоны» или «Маркетинг», задать заголовок и текст письма, используя переменные для персонализации (например, имя клиента, сумма сделки и т.п.). После сохранения шаблон становится доступен в бизнес-процессах и роботах, где его можно выбрать для отправки при наступлении заданного события.

Ссылка на основную публикацию