Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Отправка email через CEvent::Send()

00 голосов
9
Доброго времени суток. Возникла проблема с отправкой email через CEvent::Send:

$emlsend = CEvent::Send($TYPE_EMAIL_EVENT,"s1", $arMail, $ID_EMAIL_EVENT )...

Событие успешно добавляется в БД в таблицу b_event и возвращается его идентификатор, но в поле SUCCESS_EXEC напротив каждого события стоит NULL. Из прочтенного в нете, понял что проблемы в функции CEvent::CheckEvents(), которая должна вызываться в конце страницы, но по каким то причинам наверное не вызывается.... Может кто подскажет в чем может быть дело? Заранее спасибо!

P.S. C помощью обычной функции php mail() все письма успешно отправляются и доходят до адресата.
спросил 22 Апр, 13 от TeoRex (280 баллов)

9 Ответы

00 голосов
Выполните запрос в БД:
Код
alter table b_event modify SUCCESS_EXEC char(1)    not null default 'N';


Проблема после этого актуальна?
ответил 22 Апр, 13 от JIETYHOK (2,260 баллов)
00 голосов
Все отправилось :D Спасибо огромное.....так в чем же было дело. CheckEvent не мог понять NULL?
ответил 23 Апр, 13 от TeoRex (280 баллов)
00 голосов
Цитата
Pavel Sementsov пишет:
Все отправилось :D Спасибо огромное.....так в чем же было дело. CheckEvent не мог понять NULL?

API работает только с записями, у которых значение "N"
ответил 17 Июнь, 13 от JIETYHOK (2,260 баллов)
00 голосов
Вот сново не отправляет - в базе все OK (SUCCESS_EXEC напротив каждого события стоит N как положено)... Куда смотреть и что делать....ума не приложу - стремная система. Функция mail работает... Помогите!)
ответил 20 Сен, 13 от TeoRex (280 баллов)
00 голосов
Вот код:
$PROP[timetowork] = $timetowork;
$PROP[worker] = $worker;
$PROP[stage] = $stage;
$PROP[address] = $address;
$PROP[mess] = $mess;
$PROP[fname] = $fname;
$PROP[email] = $email;
$PROP[telephone] = $telephone;
$PROP[datecreate] = date('d/m/y H:i');

$el = new CIBlockElement;

$arLoadProductArray = Array(
"ACTIVE" => "Y",
"IBLOCK_ID" => IBLOCK_EMAILQUERY_ID,
"PROPERTY_VALUES"=> $PROP,
"NAME" => $worktype,
"DETAIL_TEXT" => $details
);

$arMail = array(
"WORKER" => $worker,
"TIMETOWORK" =>$timetowork,
"STAGE" => $stage,
"ADDRESSE" => $address,
"MESS" => $mess,
"FNAME" => $fname,
"EMAIL_TO" => $email,
"PHONE" => $telephone,
"DATE_CREATE" => date('d/m/y H:i'),
"WORKTYPE" => $worktype
);

if($EMAIL_ID = $el->Add($arLoadProductArray)){
$arMail["EMAIL_ID"] = $EMAIL_ID;
$emlsend = CEvent::Send('EMAIL_QUERY_TYPE', 's1', $arMail, 8 );
$rez = CEvent::CheckEvents();

}
else{
echo '<span class="error-message">Error to add email query: '.$el->LAST_ERROR.'</span>';
}
ответил 19 Дек, 13 от TeoRex (280 баллов)
00 голосов
Если убрать последний параметр в CEvent::Send() - не заработает?
ответил 04 Апр, 14 от Pomnep (13,960 баллов)
00 голосов
Нет, не отправила...
ответил 27 Июль, 14 от TeoRex (280 баллов)
00 голосов
Код
CEvent::Send(
 string event_type,
 mixed site,
 array fields,
 string duplicate="Y",
 int template_id="")

У вас ID шаблона на месте string duplicate="Y", может из-за этого глючит

И CEvent::CheckEvents() стоит убрать (она вызывается в эпилоге и дублирование может дать непредсказуемый результат)
ответил 29 Ноя, 14 от uHDurO (100 баллов)
00 голосов
Цитата
Вот сново не отправляет - в базе все OK (SUCCESS_EXEC напротив каждого события стоит N как положено)...

Приведите исходный код файла /bitrix/php_interface/dbconn.php
может отправка писем повешена на cron...
ответил 24 Март, 15 от JIETYHOK (2,260 баллов)

Похожие вопросы

+1 голос
1 ответ
спросил 26 Сен, 13 от Kiriel (2,010 баллов)
0 голосов
2 ответов
0 голосов
2 ответов
спросил 07 Май, 14 от Tafna (100 баллов)
0 голосов
3 ответов
спросил 19 Март, 14 от cartmen (460 баллов)
0 голосов
0 ответов
спросил 23 Янв, 14 от KENTS (280 баллов)