+7 499 938 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Карта разработчика магазина на 1С-Битрикс — с чего начинать и куда смотреть, когда сайт уже продаёт: PHP, каркас, витрина, git, обмены, дыры. Закрывать все клетки не нужно.


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

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


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

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



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

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

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

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

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

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












CAPTCHA

Каталог для ИИ