Настройка автоматической рассылки новостей в Bitrix
Решение проблем с неработающей ежедневной рассылкой в Bitrix: настройка cron, шаблонов и агентов.
Как настроить автоматическую рассылку новостей в Bitrix, которая не отправляется? Проблема: подписка работает, подтверждение отправляется, подписчики добавляются, но ежедневная рассылка не срабатывает. Тестовые письма отправляются индивидуально, но в шаблоне не отображается контент новостей.
Если ваша автоматическая рассылка новостей в Bitrix не работает, несмотря на то, что подписка и тестовые письма функционируют, проблема обычно связана с неправильной настройкой cron-задач или некорректным шаблоном письма. Рассмотрим комплексное решение этой распространенной проблемы.
Содержание
- Основные проблемы автоматической рассылки новостей в Bitrix
- Настройка шаблона рассылки для отображения контента
- Конфигурация агентов Bitrix и cron для регулярной отправки
- Проверка и тестирование email-рассылок
- Решение распространенных проблем с отправкой писем
- Оптимизация производительности рассылок
Основные проблемы автоматической рассылки новостей в Bitrix
Автоматическая рассылка новостей в Bitrix может перестать работать по нескольким причинам, даже если базовая функциональность (подписка, подтверждение) работает нормально. Самые распространенные проблемы:
Проблема №1: Отсутствие настройки cron для агентов Bitrix
По умолчанию агенты Bitrix выполняются при каждом обращении пользователя к сайту. Это означает, что если ваш сайт не посещается, автоматические задачи (включая рассылку) не будут запускаться. В результате ежедневная рассылка новостей не срабатывает, даже если все настройки сделаны правильно.
Проблема №2: Неправильный шаблон рассылки
Если тестовые письма отправляются, но в них не отображается контент новостей, это указывает на проблемы с шаблоном. В шаблоне должен использоваться специальный компонент для формирования текста письма, который корректно извлекает и форматирует новости из инфоблока.
Проблема №3: Отсутствие необходимых модулей
Модуль “Email-маркетинг” должен быть установлен и активирован. Без этого модуля функционал автоматической рассылки может быть недоступен или работать некорректно.
Проблема №4: Неправильная настройка SMTP-сервера
Даже если тестовые письма отправляются, это не гарантирует, что массовая рассылка будет работать корректно. SMTP-сервер может иметь ограничения на количество одновременных отправок или требовать дополнительной конфигурации для массовых рассылок.
Настройка шаблона рассылки для отображения контента
Для решения проблемы, когда контент новостей не отображается в шаблоне рассылки, необходимо создать специальный PHP-шаблон. Вот пошаговая инструкция:
Создание PHP-шаблона для рассылки
- Создайте директорию
/bitrix/php_interface/subscribe/templates/your_template_name/ - В этой директории создайте два файла:
description.phptemplate.php
Файл description.php
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$arDescription = array(
"NAME" => "Шаблон новостной рассылки",
"DESCRIPTION" => "Шаблон для автоматической рассылки новостей",
"DESCRIPTION_TYPE" => "text",
"SORT" => 100,
"TYPE" => "html",
"EDITOR_TYPE" => "html",
"IN_LIST" => "Y",
"PATH" => "/bitrix/php_interface/subscribe/templates/your_template_name/template.php"
);
?>
Файл template.php
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$arMail = array(
"SUBJECT" => "Последние новости на сайте",
"BODY_TYPE" => "html",
"CHARSET" => "UTF-8",
"DIRECT_SEND" => "N",
"FROM_FIELD" => array(
"EMAIL" => "noreply@your-site.ru",
"NAME" => "Администрация сайта"
),
"AUTO_SEND_FLAG" => "Y",
"AUTO_SEND_TIME" => "02:00:00"
);
$arMail["BODY"] = "
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset='.SITE_CHARSET.''>
<title>Последние новости</title>
</head>
<body>
<h2>Добрый день!</h2>
<p>Последние новости на нашем сайте:</p>
<?$APPLICATION->IncludeComponent(
'bitrix:news.list.mail',
'',
array(
'IBLOCK_TYPE' => 'news',
'IBLOCK_ID' => 1, // ID вашего инфоблока с новостями
'NEWS_COUNT' => '5',
'SORT_BY1' => 'ACTIVE_FROM',
'SORT_ORDER1' => 'DESC',
'PREVENT_SEND_IF_NO_NEWS' => 'Y'
),
false
);?>
<p>С уважением,<br>Администрация сайта</p>
</body>
</html>
";
return $arMail;
?>
Важные параметры компонента bitrix:news.list.mail:
IBLOCK_TYPE- тип инфоблока новостейIBLOCK_ID- ID вашего инфоблока с новостямиNEWS_COUNT- количество новостей в рассылкеPREVENT_SEND_IF_NO_NEWS- если установлено “Y”, рассылка не будет отправляться, если нет новых новостей
Настройка шаблона в административной части
- Перейдите в “Настройки” → “Настройки продукта” → “Почтовые события”
- Выберите событие “NEWS_ADD”
- В разделе “Шаблоны” создайте новый шаблон
- Выберите созданный PHP-шаблон в поле “Тип шаблона”
- Сохраните изменения
Конфигурация агентов Bitrix и cron для регулярной отправки
Это ключевой этап для решения проблемы с неработающей ежедневной рассылкой. Без правильной настройки cron агенты Bitrix не будут выполняться регулярно.
Отключение встроенного механизма проверки агентов
Для начала отключите встроенный механизм проверки агентов Bitrix через административную часть:
- Откройте “Командную PHP строку” (в админпанели Bitrix)
- Выполните следующие команды последовательно:
COption::SetOptionString("main", "agents_use_crontab", "N");
COption::SetOptionString("main", "check_agents", "N");
Эти команды отключат встроенный механизм проверки агентов и заставят систему использовать cron для их выполнения.
Включение поддержки cron в Bitrix
Добавьте поддержку cron в конфигурационные файлы Bitrix:
- Откройте файл
/bitrix/php_interface/dbconn.php - Добавьте строку:
define("BX_CRONTAB_SUPPORT", true);
- Откройте файл
/bitrix/php_interface/after_connect.php - Добавьте ту же строку:
define("BX_CRONTAB_SUPPORT", true);
Настройка cron-задачи на сервере
Добавьте cron-задачу для периодического запуска агентов Bitrix. Задача должна выполняться каждую минуту:
* * * * * /usr/bin/wget -q -O /dev/null http://ваш-сайт/bitrix/tools/cron.php
Если wget недоступен, используйте curl:
* * * * * /usr/bin/curl -s http://ваш-сайт/bitrix/tools/cron.php > /dev/null 2>&1
Проверка настройки cron
После добавления cron-задачи проверьте, что она работает правильно. Если после выполнения команд выше отображается ошибка “Определена константа BX_CRONTAB_SUPPORT”, это означает, что cron настроен правильно, но требуется дополнительная конфигурация.
Альтернативный способ настройки cron
Если вы не хотите изменять конфигурационные файлы, можно использовать административную часть Bitrix:
- Перейдите в “Настройки” → “Настройки продукта” → “Настройки модулей” → “Основные модули”
- Найдите параметр “Использовать crontab для выполнения агентов”
- Установите значение “Да”
- Сохраните изменения
Проверка и тестирование email-рассылок
После настройки шаблона и cron необходимо проверить, что все работает правильно.
Проверка агентов Bitrix
- Перейдите в “Настройки” → “Система” → “Агенты”
- Убедитесь, что есть агент для отправки почтовых рассылок (обычно начинается с “CEvent::SendImmediate”)
- Проверьте, что агент установлен на выполнение с нужной периодичностью
- Нажмите на агенте “Проверить” - должно появиться сообщение об успешном выполнении
Тестовая рассылка
Для тестовой рассылки используйте встроенные средства Bitrix:
- Перейдите в “Маркетинг” → “Рассылки”
- Выберите нужную рассылку
- Нажмите “Проверить” в разделе “Тестирование”
- Введите email для тестовой отправки
- Проверьте, что письмо пришло и отображается корректно
Проверка работы cron
Чтобы убедиться, что cron работает правильно:
- Создайте тестовый файл в корне сайта, например, test_cron.php
- Добавьте в него код:
<?php
file_put_contents('cron_test.log', date('Y-m-d H:i:s') . "\n", FILE_APPEND);
?>
- Добавьте в cron задачу:
* * * * * /usr/bin/wget -q -O /dev/null http://ваш-сайт/test_cron.php
- Подождите несколько минут и проверьте наличие файла cron_test.log
- Если файл обновляется, cron работает правильно
Решение распространенных проблем с отправкой писем
Даже после всех настроек могут возникнуть проблемы. Вот самые распространенные из них и способы решения:
Проблема: Письма не отправляются
Возможные причины:
- Отсутствие новых новостей в инфоблоке
- Ограничения SMTP-сервера
- Неправильная настройка агентов
Решение:
- Убедитесь, что есть новые новости с датой публикации в течение последних 24 часов
- Проверьте настройки SMTP-сервера в “Настройки” → “Настройки продукта” → “Почтовые события”
- Проверьте работу агентов через “Настройки” → “Система” → “Агенты”
Проблема: Письма приходят, но без контента
Возможные причины:
- Неверный ID инфоблока в компоненте
- Отсутствие новостей за указанный период
- Проблемы с правами доступа
Решение:
- Проверьте ID инфоблока новостей в настройках компонента
- Убедитесь, что есть активные новости с датой публикации в течение последних 24 часов
- Проверьте права доступа к инфоблоку для анонимных пользователей
Проблема: Рассылка отправляется не вовремя
Возможные причины:
- Некорректная настройка cron
- Высокая нагрузка на сервер
- Конфликт с другими агентами
Решение:
- Проверьте cron-задачу и убедитесь, что она выполняется каждую минуту
- Увеличьте приоритет агента рассылки в “Настройки” → “Система” → “Агенты”
- Отключите ненужные агенты на время теста
Проблема: Тестовые письма работают, а массовая рассылка нет
Возможные причины:
- Разные SMTP-серверы для теста и массовой рассылки
- Ограничения на количество одновременных отправок
- Проблемы с правами доступа
Решение:
- Убедитесь, что используете один и тот же SMTP-сервер для теста и массовой рассылки
- Настройте очередь отправки писем
- Проверьте права доступа к файлам и директориям
Оптимизация производительности рассылок
После настройки базовой функциональности можно оптимизировать производительность рассылок:
Настройка очереди отправки писем
Чтобы избежать перегрузки сервера при массовой рассылке:
- Перейдите в “Настройки” → “Настройки продукта” → “Почтовые события”
- В разделе “Настройки отправки” установите:
- “Использовать очередь отправки” - “Да”
- “Количество писем за один запуск” - 50-100
- “Интервал между запусками” - 5-10 минут
Оптимизация работы агентов
Для более эффективной работы агентов:
- В “Настройки” → “Система” → “Агенты” нажмите “Показать все”
- Отсортируйте агенты по времени выполнения
- Убедитесь, что агент рассылки имеет высокий приоритет
- Отключите ненужные агенты во время пиковых нагрузок
Мониторинг работы рассылок
Настройте мониторинг для отслеживания работы рассылок:
- Создайте лог-файл для записи информации о рассылках
- Добавьте в шаблон письма код для отслеживания доставки
- Используйте встроенные средства Bitrix для анализа рассылок
Безопасность рассылок
Обеспечьте безопасность рассылок:
- Используйте SSL для SMTP-соединения
- Настройте SPF и DKIM записи для домена
- Регулярно обновляйте Bitrix до последних версий
Источники
-
Веб-студия АКРИТ — Создание автоматической рассылки в Bitrix: https://www.acrit-studio.ru/pantry-programmer/knowledge-base/forum_admin/forum_cm/subscribe/subscribe_dev/sozdanie-avtomaticheskoy-rassylki/
-
SenDev — Создание и настройка новостной рассылки в 1С-Битрикс: https://sendev.ru/blog/1c-bitrix/sozdanie-i-nastroyka-novostnoy-rassylki-v-1s-bitriks/
-
VecDev — Настройка выполнения агентов Bitrix на cron: https://vecdev.ru/blog/bitriks/nastroyka-vypolneniya-agentov-bitriks-na-cron-reshenie-problemy-nerabotayushchikh-agentov/
-
Рег.ру — Выполнение агентов на cron в Bitrix: https://help.reg.ru/support/hosting/cms/vypolneniye-agentov-na-cron-v-bitrix
-
Bitrix Boost — Запуск агентов 1С Битрикс по cron: https://btrxboost.com/help/3305
Заключение
Автоматическая рассылка новостей в Bitrix может перестать работать по нескольким причинам, от неправильной настройки cron до ошибок в шаблоне письма. Для решения проблемы необходимо:
- Проверить и настроить cron-задачи для регулярного выполнения агентов Bitrix
- Создать правильный PHP-шаблон для рассылки с использованием компонента
bitrix:news.list.mail - Настроить SMTP-сервер и модуль “Email-маркетинг”
- Провести тщательное тестирование с использованием встроенных средств Bitrix
Следуя этим шагам, вы сможете восстановить функциональность автоматической рассылки и обеспечить регулярную доставку новостей вашим подписчикам.
Для решения проблемы с автоматической рассылкой новостей в Bitrix необходимо создать PHP-шаблон в директории bitrix/php_interface/subscribe/templates/. Структура шаблона должна включать файлы description.php и template.php. В template.php используется компонент для формирования текста письма, который должен возвращать массив с параметрами письма: SUBJECT, BODY_TYPE, CHARSET, DIRECT_SEND, FROM_FIELD, AUTO_SEND_FLAG и AUTO_SEND_TIME. Тестирование рассылки проводится через функцию “Проверить” в админпанели.
Для ежедневной рассылки новостей в Bitrix убедитесь, что модуль «Email-маркетинг» установлен и настроен SMTP-сервер. В шаблоне письма обязательно включите компонент news.list.mail с корректными параметрами, особенно IBLOCK_ID для инфоблока новостей и PREVENT_SEND_IF_NO_NEWS=“Y”. Настройте cron-задачу для запуска агентов Bitrix, иначе периодические письма будут отправляться только при посещении сайта пользователями.
Для настройки выполнения агентов Битрикс на cron через административную часть выполните команды в “Командной PHP строке”: COption::SetOptionString(“main”, “agents_use_crontab”, “N”); и COption::SetOptionString(“main”, “check_agents”, “N”). Эти команды отключают встроенный механизм проверки агентов и заставляют систему использовать cron для их выполнения. После этого добавьте задачу в crontab сервера для периодического запуска cron.php.
Агенты в Bitrix - это PHP-скрипты для автоматизации задач, таких как отправка почтовых рассылок. По умолчанию они выполняются при каждом обращении пользователя к сайту, что может вызывать задержки. Для решения этой проблемы настройте выполнение агентов через cron - стандартный Unix-утилиту для периодического выполнения команд. При этом агенты выполняются независимо от посещаемости сайта, что позволяет избежать нагрузки на сервер при высокой посещаемости.
Для запуска агентов 1С Битрикс по cron добавьте в файл /bitrix/php_interface/dbconn.php строку define(“BX_CRONTAB_SUPPORT”, true); и также добавьте эту строку в файл /bitrix/php_interface/after_connect.php. После этого настройте cron-задачу с командой: * * * * * /usr/bin/wget -q -O /dev/null http://ваш-сайт/bitrix/tools/cron.php. Если после изменений отображается ошибка “Определена константа BX_CRONTAB_SUPPORT”, это означает, что cron настроен правильно, но требуется дополнительная конфигурация.
