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


Реализация автоматической рассылки на основе модуля Рассылка

Уже не однократно просили опубликовать информацию по реализации автоматического формирования рассылки. Постараюсь как можно подробнее описать...


Что мы имеем: Модуль Рассылки в котором у нас будут:
- храниться рубрики рассылки;
- формироваться автоматические рассылки;
- храниться информация о подписчиках;
- рассылаться почта.

Итак начнем.
Создания скрипта автоматической рассылки.
Все наверное видели при создании рассылки в автоматическом виде видели один параметр: Доступные шаблоны.



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 от имени которого будет происходить рассылка.

Сохраняем нашу рассылку.

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

Надеюсь моя статья поможет вам в решении ваших вопросов.

 

 

Источник: http://dev.1c-bitrix.ru/community/webdev/user/16183/blog/1042/

Назад в раздел

Подписаться на новые материалы раздела:














CAPTCHA