Добрый день коллеги. Столкнулся с проблемой. В init.php в одном из обработчиков пытаюсь отправить письмо через CEvent::SendImmediate. Оно мне Вернуло код 0, который показывает, что нет шаблона, а шаблон есть.
Начал ковырять разбираться в че дело. Через дебаг дошел до библиотеки "bitrix/modules/main/lib/mail/event.php". И тут уже увидел что у меня вылетает на 170 строке
Именно в условии !$charset. Вот только понять не могу какой настройки он не находит. Прошелся по всему сайту. Все языковые выставлены. Кто соображает или сталкивался помогите, пожалуйста, разобраться.
Начал ковырять разбираться в че дело. Через дебаг дошел до библиотеки "bitrix/modules/main/lib/mail/event.php". И тут уже увидел что у меня вылетает на 170 строке
| Код |
|---|
public static function handleEvent(array $arEvent)
{
if(!isset($arEvent['FIELDS']) && isset($arEvent['C_FIELDS']))
$arEvent['FIELDS'] = $arEvent['C_FIELDS'];
if(!is_array($arEvent['FIELDS']))
throw new Main\ArgumentTypeException("FIELDS" );
$flag = static::SEND_RESULT_TEMPLATE_NOT_FOUND; // no templates
$arResult = array(
"Success" => false,
"Fail" => false,
"Was" => false,
"Skip" => false,
);
$trackRead = null;
$trackClick = null;
if(array_key_exists('TRACK_READ', $arEvent))
$trackRead = $arEvent['TRACK_READ'];
if(array_key_exists('TRACK_CLICK', $arEvent))
$trackClick = $arEvent['TRACK_CLICK'];
$arSites = explode(",", $arEvent["LID"]);
if(empty($arSites))
{
return $flag;
}
// get charset and server name for languages of event
// actually it's one of the sites (let it be the first one)
$charset = false;
$serverName = null;
static $sites = array();
$infoSite = reset($arSites);
if(!isset($sites[$infoSite]))
{
$siteDb = Main\SiteTable::getList(array(
'select' => array('SERVER_NAME', 'CULTURE_CHARSET'=>'CULTURE.CHARSET'),
'filter' => array('=LID' => $infoSite)
));
$sites[$infoSite] = $siteDb->fetch();
}
if(is_array($sites[$infoSite]))
{
$charset = $sites[$infoSite]['CULTURE_CHARSET'];
$serverName = $sites[$infoSite]['SERVER_NAME'];
}
if(!$charset)
{
return $flag;
}
|