Сейчас все формируется, новость попадает в "Выпуски", статус у выпуска S ("Отправлено"
. НО на почту ничего не приходит!
Код:
Код |
---|
class subscribe_news {
function OnAfterIBlockElementAddHandler(&$arFields){
#AddMessage2Log(mydump($arFields));
# подключаем модули
CModule::IncludeModule('iblock'); // подключаем инфоблоки
CModule::IncludeModule('subscribe'); // подключаем рассылку
# формируем дату и сравниваем
$date = substr($arFields['ACTIVE_FROM'],0,10); // убираем в дате время, оставляем только дату в формате 01.01.2014 (через опу, но работает!)
if ($date == date('d.m.Y') && $arFields["IBLOCK_ID"] == 1) { //срасниваем даты и сравниваем ИД инфоблока, если совпадает, то
# Данные для письма
$FROM_FIELD = "message@site.ru"; // Почта отправителя (тут не настоящая почта)
$SUBJECT = "Новость | ".$arFields["NAME"] ; // Тема письма
$BODY = '<strong>'.$date.'</strong> <h3>'.$arFields["NAME"].'</h3><br />'.$arFields["DETAIL_TEXT"]; // Тело письма
$TO_FIELD = $arFields["GROUP_ID"]; // Как я понял, тут группа подписчиков
$RUB_ID = 2;
$GROUP_ID = 1;
$STATUS = "Y";
# Формирование письма
$posting = new CPosting;
$arFields = Array(
"ID" => $arFields["ID"],
"FROM_FIELD" => $FROM_FIELD, // Поле письма "От кого"
"TO_FIELD" => $TO_FIELD, // Поле письма "Кому"
//"BCC_FIELD" => $BCC_FIELD, // Список адресов в поле письма "Скрытая копия"
//"EMAIL_FILTER" => $EMAIL_FILTER, // Фильтр на выборку адресов
"SUBJECT" => $SUBJECT, // Поле письма "Тема"
"BODY_TYPE" => ($BODY_TYPE <> "html"? "text":"html"), // Тип текста письма ("text"/"html")
"BODY" => $BODY, // Текст письма
"DIRECT_SEND" => ($DIRECT_SEND <> "Y"? "Y":"N"), // Отправлять персонально каждому подписчику ("Y"/"N").
//"CHARSET" => $CHARSET, // Кодировка, указываемая в заголовке письма
//"SUBSCR_FORMAT" => ($SUBSCR_FORMAT<>"html" && $SUBSCR_FORMAT<>"text"?false:$SUBSCR_FORMAT), // Фильтр на формат текста. Формат указан в подписках
"RUB_ID" => $RUB_ID, // массив идентификаторов рассылок
"GROUP_ID" => $GROUP_ID // массив идентификаторов групп пользователей
);
if($STATUS <> ""){
if($STATUS<>"S" && $STATUS<>"E" && $STATUS<>"P")
#$STATUS = "D";
$STATUS = "P";
$arFields["STATUS"] = $STATUS;
#if($STATUS == "D"){
if($STATUS == "P"){
$arFields["DATE_SENT"] = false;
$arFields["SENT_BCC"] = "";
$arFields["ERROR_EMAIL"] = "";
}
}
$ID = $posting->Add($arFields);
if($ID == false)
echo $posting->LAST_ERROR;
//AddMessage2Log($arFields.' '.$ID);
}
$posting->SendMessage($ID, COption::GetOptionString("subscribe", "posting_interval"));
}
}
|