Как грамотно настроить рассылку новостей?

Ссылка скопирована
1 ответ

Сейчас ситуация такая:, подскажите, столкнулся с такой проблемой но совсем понимаю как правильно работает подписка и рассылка новостей. В какую сторону идти.

По вводным: есть форма по которой идет подписка на рассылку. Во вкладке рассылки.

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

Сейчас ситуация такая: далее в разделе список рассылок есть созданная рассылка которая активная и заполненная на отправку каждый день в 5 утра. Но она нечего не отправляет.

Сейчас ситуация такая: если сделать проверку тестовую то там не будет новости а только текст о том что о чем письмо то есть заголовок. Новости магазина.

Сейчас ситуация такая: и получается новость туда не подгружается и в целом не отправляет. (даже пытался в шаблоне отправки добавить точечно на какой id новостей ссылаться).
Стандартный шаблон

<? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); 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> <P><?$SUBSCRIBE_TEMPLATE_RESULT = $APPLICATION->IncludeComponent( "bitrix:subscribe.news", "", Array( "SITE_ID" => "s1", "IBLOCK_TYPE" => "news", "ID" => "", "SORT_BY" => "ACTIVE_FROM", "SORT_ORDER" => "DESC", ), null, array( "HIDE_ICONS" => "Y", ) );?></P> <? if($SUBSCRIBE_TEMPLATE_RESULT) return array( "SUBJECT"=>$SUBSCRIBE_TEMPLATE_RUBRIC["NAME"], "BODY_TYPE"=>"html", "CHARSET"=>"UTF-8", "DIRECT_SEND"=>"Y", "FROM_FIELD"=>$SUBSCRIBE_TEMPLATE_RUBRIC["FROM_FIELD"], ); else return false; ?>

По вводным: но если зайти в раздел выпуски и создать тестовое отправку письма точечно на кого-то то оно отправляется.

Сейчас ситуация такая: подскажите, в каком направление двигаться, и то что-то застрял не понимаю.

699dd97fe9fbb516327670.png
699dd984945d8132399293.png
699dd9883e7d6690892562.png
699dd98cee1c6109182941.png

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Анна SEO Ответ

В 1С-Битрикс “подписка” и “рассылка” часто путаются. Подписчик в списке подписчиков — это только адрес и согласие получать выпуски. Чтобы новости реально попали в письмо, нужен выпуск рассылки с корректным шаблоном, выборкой элементов инфоблока и агентом/cron, который этот выпуск отправит.

Сначала проверьте базовую цепочку:

  • модуль подписки установлен и активен;
  • подписчик подтверждён;
  • рассылка активна;
  • у рассылки есть выпуск или автогенерация выпуска;
  • агенты выполняются cron-ом, а не зависят от посещений сайта;
  • почта сайта реально отправляется.

Тестовое письмо с одним заголовком обычно означает, что шаблон письма не содержит компонент/код, который выбирает новости, либо выборка возвращает пустой результат. Проверьте параметры: ID инфоблока, активность элементов, дата публикации, разделы, права доступа, фильтр по дате.

Для диагностики временно сделайте максимально простой шаблон, который выводит последние элементы нужного инфоблока:

$rs = CIBlockElement::GetList(
    ['DATE_ACTIVE_FROM' =&gt; 'DESC'],
    ['IBLOCK_ID' =&gt; 12, 'ACTIVE' =&gt; 'Y'],
    false,
    ['nTopCount' =&gt; 5],
    ['ID', 'NAME', 'DETAIL_PAGE_URL']
);
 
while ($item = $rs-&gt;GetNext()) {
    echo '<p><a href="' . $item['DETAIL_PAGE_URL'] . '">' . $item['NAME'] . '</a></p>';
}

$rs = CIBlockElement::GetList( ['DATE_ACTIVE_FROM' =&gt; 'DESC'], ['IBLOCK_ID' =&gt; 12, 'ACTIVE' =&gt; 'Y'], false, ['nTopCount' =&gt; 5], ['ID', 'NAME', 'DETAIL_PAGE_URL'] ); while ($item = $rs-&gt;GetNext()) { echo '<p><a href="' . $item['DETAIL_PAGE_URL'] . '">' . $item['NAME'] . '</a></p>'; }

Если этот код ничего не выводит, проблема в инфоблоке/фильтре. Если выводит на странице, но не в рассылке, проблема в шаблоне выпуска или контексте выполнения.

Отправку по расписанию лучше перевести на cron:

php -f /path/to/site/bitrix/modules/main/tools/cron_events.php

php -f /path/to/site/bitrix/modules/main/tools/cron_events.php

И проверьте, что агенты подписки выполняются. Если агенты не запускаются, рассылка будет “активна”, но фактически не уйдёт.

Итог: отдельно проверьте генерацию содержимого письма и отдельно отправку. Сначала добейтесь, чтобы в выпуске появились новости, затем проверьте cron/агенты и почтовые события. Не пытайтесь чинить всё сразу через ID новостей в шаблоне — лучше настроить правильную выборку элементов инфоблока.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно