Не получается настроить автоматическую рассылку подписчикам.
Теперь смотри код:
$arMRubricList - массив с рубриками. Если убрать сроку $arFields["STATUS"] = "D";, то при добавлении выпуска статус автоматом ставится на "В процессе" (Р), но таблица "b_posting_email" остается пустой. В следствии чего агент CPosting::AutoSend(".$ID.",true); ничего не отсылает. А вот если оставить эту строчку, а потом сменить статус, то таблица заполнится е-майлами подписчиков.
Возникает вопрос: как же тогда настроить автоматическую рассылку подписчикам? т.к. выпуск генерируется сразу со статусом P.
Надеюсь ясно, что я пытаюсь растолковать
------------------------------
Из выявленных ошибок при проверке сайта:
1. Наличие необходимых модулей php Не установлены требуемые расширения:
Поддержка ssl не настроена в php.
2. Загрузка файла больше 4Мб подробнееОшибка
Стоит на денвере. После установки лишь изменились настройки в php.ini для установки сайта в win1251.
| Цитата |
|---|
| Екатерина Обросова писала: При указании статуса в поле STATUS следует учитывать, что при переводе из одного статуса в другой могут выполняться определенные действия. Так, например, при переводе из статуса "Черновик" ("D" в статус "В процессе" ("P" формируется список адресов по которым будет происходить отправка. А именно емейлы на которые требуется отправить выпуск попадают в таблицу b_posting_email со статусом "Y". Если при добавлении выпуска сразу указать статус "В процессе" ("Р" то процесс добавления емейлов с таблицу b_posting_email не произойдет и выпуск никому не отправится. При этом статус выпуска сменится на "S" (отправлен успешно). |
Теперь смотри код:
| Код |
|---|
foreach($arMRubricList as $RKey => $arRubric)
{
//echo '$arRubric -> ';
//echo"<pre>";print_r($arRubric);echo"</pre>";
if(CPostingTemplate::IsExists($arRubric["TEMPLATE"]))
{
$strFileName= $_SERVER["DOCUMENT_ROOT"]."/".$arRubric["TEMPLATE"]."/lang/".$arSite["LANGUAGE_ID"]."/template.php";
if(file_exists($strFileName))
include($strFileName);
//Execute template
$strFileName= $_SERVER["DOCUMENT_ROOT"]."/".$arRubric["TEMPLATE"]."/template.php";
if(file_exists($strFileName))
{
ob_start();
$arFields = @include($strFileName);
$strBody = ob_get_contents();
ob_end_clean();
}
}
if(is_array($arFields))
{
//echo '$arFields -> ';
//echo"<pre>";print_r($arFields);echo"</pre>";
$cPosting=new CPosting;
$arFields["BODY"] = $strBody;
$arFields["RUB_ID"] = array($arRubric["ID"]);
$arFields["MSG_CHARSET"] = $arLang["CHARSET"];
[COLOR=#FF0000]$arFields["STATUS"] = "D"; // realy need[/COLOR]
//echo '$arFields -> ';
//echo"<pre>";print_r($arFields);echo"</pre>";
$ID = $cPosting->Add($arFields);
if($ID>0)
{
if($cPosting->ChangeStatus($ID, "P"))
{
echo 'true ChangeStatus<br />';
$arEmailStatuses = CPosting::GetEmailStatuses($ID);
echo"<pre>";print_r($arEmailStatuses);echo"</pre>";
$time = ConvertTimeStamp(time()+10, "FULL");
CAgent::AddAgent("CPosting::AutoSend(".$ID.",true);", "subscribe", "N", 0, $time, "Y", $time);
/*
$res = $cPosting->SendMessage($ID, 10, 10);
if(!$res)
{
echo "<hr />false SendMessage<br />";
echo $cPosting->LAST_ERROR.'<br />';
} else {
echo "<hr /><h1><font color=blue>SendMessage</font></h1><br />";
}
*/
} else {
echo "false change status<br />";
echo $cPosting->LAST_ERROR.'<br />';
}
} else {
echo "false add posting<br />";
echo $cPosting->LAST_ERROR.'<br />';
}
}
} |
$arMRubricList - массив с рубриками. Если убрать сроку $arFields["STATUS"] = "D";, то при добавлении выпуска статус автоматом ставится на "В процессе" (Р), но таблица "b_posting_email" остается пустой. В следствии чего агент CPosting::AutoSend(".$ID.",true); ничего не отсылает. А вот если оставить эту строчку, а потом сменить статус, то таблица заполнится е-майлами подписчиков.
Возникает вопрос: как же тогда настроить автоматическую рассылку подписчикам? т.к. выпуск генерируется сразу со статусом P.
Надеюсь ясно, что я пытаюсь растолковать

------------------------------
Из выявленных ошибок при проверке сайта:
1. Наличие необходимых модулей php Не установлены требуемые расширения:
Поддержка ssl не настроена в php.
2. Загрузка файла больше 4Мб подробнееОшибка
Стоит на денвере. После установки лишь изменились настройки в php.ini для установки сайта в win1251.
Пишите по доработкам: my.grebnev@gmail.com
в статус "В процессе" ("P"