Реализация автоматической рассылки на основе модуля Рассылка
Уже не однократно просили опубликовать информацию по реализации автоматического формирования рассылки. Постараюсь как можно подробнее описать...
Что мы имеем: Модуль Рассылки в котором у нас будут:
- храниться рубрики рассылки;
- формироваться автоматические рассылки;
- храниться информация о подписчиках;
- рассылаться почта.
Итак начнем.
Создания скрипта автоматической рассылки.
Все наверное видели при создании рассылки в автоматическом виде видели один параметр:
Доступные шаблоны.

1. Так что такое шаблон?
2. Где его взять?
3. Как он должен выглядеть?
Начнем по порядку:
1. Шаблон - это PHP скрипт который будет формировать в определенное время текст письма рассылки.
2. В старых демках был пример такого шаблона. Этот шаблон нам и надо будет создать.
3. НУ а теперь и сам код этого скрипта:
Скрипты шаблонов должны лежать тут: bitrix/php_interface/subscribe/templates/Любое_имя_раздела_для_вашего_шаблона/
Структура содержимого:
lang/
lang/ru/
lang/ru/description.php
lang/en/
lang/en/description.php
description.php
template.php
Листинг файла lang/ru/description.php:
<?
$MESS ['news_template_name'] = "Дайджест новостей";
$MESS ['news_template_desc'] = "Шаблон генерации дайджеста новостей.";
?>
|
Листинг файла description.php:
<?
$arTemplate =
Array(
"NAME"=>GetMessage("news_template_name"),
"DESCRIPTION"=>GetMessage("news_template_desc")
);
?>
|
А вот на листинге последнего файла уделю больше внимания т.к. этот файл и будет играть всю основную роль.
Листинг файла template.php:
<?//Запретим прямой вызов скрипта
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
//определяем глобальные переменные и присваиваем им первоначальные значения.
global $SUBSCRIBE_TEMPLATE_RESULT;
$SUBSCRIBE_TEMPLATE_RESULT=false;
global $SUBSCRIBE_TEMPLATE_RUBRIC;
$SUBSCRIBE_TEMPLATE_RUBRIC=$arRubric;
global $APPLICATION;
//определяем стилистику нашего письма
?>
<STYLE type=text/css>
.text {font-family: Verdana, Arial, Helvetica, sans-serif; font-size:12px; color: #1C1C1C; font-weight: normal;}
.newsdata{font-family: Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold; color: #346BA0; text-decoration:none;}
H1 {font-family: Verdana, Arial, Helvetica, sans-serif; color:#346BA0; font-size:15px; font-weight:bold; line-height: 16px; margin-bottom: 1mm;}/*Текст заголовка*/
</STYLE>
<P>Добрый день!</P>
<!-- Подключаем компонент который будет из инфоблока $IBLOCK, из раздела $arRubric только новые элементы -->
<P><?$APPLICATION->IncludeComponent(
"bitrix:subscribe.news",
".default",
Array(
"SITE_ID" => "ru",
"IBLOCK_TYPE" => "news",
"ID" => $IBLOCK,
"SECTION_ID" => $arRubric,
"INCLUDE_SUBSECTIONS" => "Y",
"SORT_BY" => "ACTIVE_FROM",
"SORT_ORDER" => "DESC"
),
false
);?></P>
<P>Всего хорошего</P><?
//Получаем дату и время в правильном формате.
$new_date = $DB->FormatDate(date("d.m.Y H:i:s"), "DD.MM.YYYY HH:MI:SS", CSite::GetDateFormat("FULL", "ru"));
//вы конечно могли подучать, что просто подключением компонента вопрос решится, но не тут-то было, надо теперь полученные данные передать обратно модулю расслка
if($SUBSCRIBE_TEMPLATE_RESULT)
return array(
//Заголовок письма
"SUBJECT"=>$arRubric["NAME"]
//Тип сообщения
,"BODY_TYPE"=>"html"
//Кодировка письма
,"CHARSET"=>"Windows-1251"
,"DIRECT_SEND"=>"Y"
//E-Mail от имени которого будет производится рассылка
,"FROM_FIELD"=>$arRubric["FROM_FIELD"]
//Автоматическая отправка
,"AUTO_SEND_FLAG"=>"Y"
//Дата и время отправки письма
,"AUTO_SEND_TIME"=>$new_date
);
else
return false;
?>
|
Все шаблоны у нас созданы.
Создание автоматической рассылки.Заходим в "Панель управления -> Сервисы -> Рассылки -> Список рассылок" и создаем новую рассылку которая будет у нас формироваться автоматически.
При создании новой рассылки ставим галочку на поле "Автоматическая" после чего у нас активируется 2-я вкладка "Автоматическая генерация".
Во второй вкладке указывается период генерации рассылок, шаблон по которому будет производится рассылка и E-Mail от имени которого будет происходить рассылка.
Сохраняем нашу рассылку.
Последний шаг - тестирование.
Открываем нашу созданную рассылку и нажимаем "Проверить", на открывшейся странице указываем период за который необходимо выбрать данные и смотрим результат генерации.
Надеюсь моя статья поможет вам в решении ваших вопросов.
Назад в раздел