Cevent send error

Всем привет!Есть страница: На ней внизу есть кнопка "Связаться с нами". При клике по кнопке всплывает форма обратной связи. Так вот, при отправке формы срабатывает ajax-запрос к скрипту.Код самого скрипта:Код <?    CModule::IncludeModule("iblock");    $el = new CIBlockElement;...
 

Пользователь 329042

Постоянный посетитель

Сообщений: 126
Баллов: 20
Авторитет:

1

Рейтинг пользователя:

3

Регистрация: 13.04.2015

Всем привет!

Есть страница:

https://digit.nsd.ru/

На ней внизу есть кнопка «Связаться с нами». При клике по кнопке всплывает форма обратной связи. Так вот, при отправке формы срабатывает ajax-запрос к скрипту.

Код самого скрипта:

Код
<?
include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

?>

<?
   CModule::IncludeModule("iblock");

   $el = new CIBlockElement;
   $PROP = array();
   $PROP['MESSAGE'] = $_POST['msg'];
   $PROP['NAME'] = $_POST['name'];
   $PROP['EMAIL'] = $_POST['email'];

   echo 'Прибыли данные:';
   var_dump($PROP);

   $arLoadProductArray = Array(
     "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
     "IBLOCK_SECTION_ID" => false,          // элемент лежит в корне раздела
     "IBLOCK_ID"      => 5,
     "PROPERTY_VALUES"=> $PROP,
     "NAME"           => $PROP['EMAIL'],
     "ACTIVE"         => "Y",            // активен
     //"PREVIEW_TEXT"   => "текст для списка элементов",
     //"DETAIL_TEXT"    => "текст для детального просмотра",
     //"DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
   );

   //Добавляем новый элемент инфоблока в админку
   if($ELEMENT_ID = $el->Add($arLoadProductArray)){
      echo "New ID: ".$ELEMENT_ID;
   }else{
      echo "Error: ".$el->LAST_ERROR;
   }


   //Отправляем почту
   $arEventFields = array(
       "MSG" => $_POST['msg'],
       "NAME" => $_POST['name'],
       "EMAIL" => $_POST['email']
    );

    CEvent::Send("CONNECT_US_FORM", "s1", $arEventFields, "N", "", array(), "ru");
    //CEvent::Send("CONNECT_US_FORM", "s1", array(), "N", "", array(), "ru");
?>



<?

include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");

?>

Этот скрипт добавляет новый элекмент в инфоблок + должен отправлять письмо на почту, с использованием функции CEvent::Send. Тип почтового события CONNECT_US_FORM в админке есть. Почтовый шаблон в админке тоже есть, и там указана моя почта для получения, но, письмо почему то не приходит.

В таблицу b_event запись добавляется, но в поле SUCCESS_EXEC стоит N, что означает, что письмо не отправлено.

Если в админке зайти в «Сервисы» — «Рассылки» — «Выпуски» — сделать там тестовое письмо, и отправить — то письмо отправляется, а вот с использованием функции CEvent::Send — почему то нет.

Подскажите, кто-нибудь с таким сталкивался? Как это лечится?

1С Битрикс проблема отправки писем CEvent::Send

Пробовал отправлять собственные шаблоны писем из кода компонента в CMS 1С Битрикс.
Сразу встретился с возможными проблемами отправки.
Использую функцию CEvent->Send().

Проверка и еще раз проверка

Для начала нужно проверить правильно ли настроено событие и шаблон вашего сообщения в административной панели Битрикс Настройки > Почтовые события.

  1. Почтовое событие существует и в вашу функцию CEvent->Send() передается верное значение идентификатора типа события.
  2. Событию назначен хотя бы один почтовый шаблон.
  3. Шаблон события активен и в обязательных полях стоят правильные значения или шаблоны значений.

На хостинге проблема с функцией mail

Банальная проблема. Делаем тестовый файл, проверяем отправку, если действительно есть проблема, обращаемся к хостеру.

Пример кода:


<?php
$send_to = 'your_email@your_email_domen.ru';
$headers = 'From: sender@youdomen.ru';
if( mail($send_to ,'Тема сообщения',"Проверка функции Mail",$headers) ){
    echo 'Mail() работает!';
}else{
    echo 'Проблема с функцией Mail()!';
}
?>

Проверка состояния почтового события в БД

Функция 1С Битрикс CEvent->Send() не отправляет сообщение немедленно, а лишь создает почтовое событие в системе которое будет обработано функцией CEvent::CheckEvents(). (подробнее про Почтовую систему 1С Битрикс).

Идем в Настройки-Инструменты-SQL-запрос.

select * from b_event 
where event_name like '%your_event_name%' order by date_insert desc

Смотрим в поле SUCCESS_EXEC:
Y — успешно отправлено (передано в функцию mail, обращаемся к хостеру.
N — Не отправлялось (читаем дальше)
F — Функция MAIL вернула ошибку при отправке (обращаемся к хостеру)

Проверяем настройки отправки по cron

Если в предыдущем пункте вы видите SUCCESS_EXEC=N, то возможно в настройках продукта включена отправка сообщений по крону.
В файле /bitrix/php_interface/dbconn.php ищем константы:


define('BX_CRONTAB', true);

define('BX_CRONTAB_SUPPORT', true);

Если значение = true, нужно поставить false либо убрать данные константы.
Подробнее про данные константы 1С Битрикс можно узнать здесь.

Снова проверяем отправку.

Проверяем кэш

Если статус отправки события по прежнему = N, то в модуле управления структурой идем по пути /bitrix/managed_cache/ и чистим содержимое.

Итог

В моем случае было 2 проблемы:

  • Не работала функция mail, решилась обращением в саппорт хостинга.
  • Был неправильно настроен шаблон сообщения.

Всем привет! Не отправляются письма с сайта. Интересный факт письмо отправляется с админки, а с сайта — нет. С помощью командной php-строки отправлены письма методами Event::send и CEvent::Send, в первом случае письмо отправилось, во втором — нет, но сообщение выдало что «успешно отправлено » в sql таблице b_event письмо имеет статус SUCCESS_EXEC = F. Не могу понять, где прописан CEvent::Send, помогите пожалуйста
1-я проверка Event::send

use BitrixMainMailEvent;
$arFields = array(
    "EVENT_NAME" => "SALE_NEW_ORDER",
    "LID" => "s1",
    "C_FIELDS" => array(
    "EMAIL"    => "mail_to@mail.com",
    "BCC"    => "mail_to@mail.com",
    "DEFAULT_EMAIL_FROM"    => "mail_from@mail.com",
    ),
    "DUPLICATE"=>"Y",
);
$result=Event::send($arFields);
if($result->GetId()){
    echo 'Успешно отправлено!';
}else{
    echo 'Отправка не удалась!';
}

2-я проверка CEvent::Send

$arEventFields = array(
     "EMAIL_TO"            => "mail_to@mail.com",
    "BCC"                 => "mail_to@mail.com",
   "DEFAULT_EMAIL_FROM"    => "mail_from@mail.com",
    "ORDER_LIST"    => "состав заказа",
    );
$result=CEvent::Send("SALE_NEW_ORDER", "s1", $arEventFields,'Y');
if(intval($result)){
    echo 'Успешно отправлено!';
}else{
    echo 'Отправка не удалась!';
}

1 / 1 / 2

Регистрация: 09.10.2009

Сообщений: 387

1

26.05.2021, 10:42. Показов 2348. Ответов 2


Всем привет!

Есть страница: https://digit.nsd.ru/

На ней внизу есть кнопка «Связаться с нами». При клике по кнопке всплывает форма обратной связи. Так вот, при отправке формы срабатывает ajax-запрос к скрипту.

Код самого скрипта:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?
include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
 
?>
 
<?
   CModule::IncludeModule("iblock");
 
   $el = new CIBlockElement;
   $PROP = array();
   $PROP['MESSAGE'] = $_POST['msg'];
   $PROP['NAME'] = $_POST['name'];
   $PROP['EMAIL'] = $_POST['email'];
 
   echo 'Прибыли данные:';
   var_dump($PROP);
 
   $arLoadProductArray = Array(
     "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
     "IBLOCK_SECTION_ID" => false,          // элемент лежит в корне раздела
     "IBLOCK_ID"      => 5,
     "PROPERTY_VALUES"=> $PROP,
     "NAME"           => $PROP['EMAIL'],
     "ACTIVE"         => "Y",            // активен
     //"PREVIEW_TEXT"   => "текст для списка элементов",
     //"DETAIL_TEXT"    => "текст для детального просмотра",
     //"DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
   );
 
   //Добавляем новый элемент инфоблока в админку
   if($ELEMENT_ID = $el->Add($arLoadProductArray)){
      echo "New ID: ".$ELEMENT_ID;
   }else{
      echo "Error: ".$el->LAST_ERROR;
   }
 
 
   //Отправляем почту
   $arEventFields = array(
       "MSG" => $_POST['msg'],
       "NAME" => $_POST['name'],
       "EMAIL" => $_POST['email']
    );
 
    CEvent::Send("CONNECT_US_FORM", "s1", $arEventFields, "N", "", array(), "ru");
    //CEvent::Send("CONNECT_US_FORM", "s1", array(), "N", "", array(), "ru");
?>
 
 
 
<?
 
include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
 
?>

Этот скрипт добавляет новый элекмент в инфоблок + должен отправлять письмо на почту, с использованием функции CEvent::Send. Тип почтового события CONNECT_US_FORM в админке есть. Почтовый шаблон в админке тоже есть, и там указана моя почта для получения, но, письмо почему то не приходит.

В таблицу b_event запись добавляется, но в поле SUCCESS_EXEC стоит N, что означает, что письмо не отправлено.

Если в админке зайти в «Сервисы» — «Рассылки» — «Выпуски» — сделать там тестовое письмо, и отправить — то письмо отправляется, а вот с использованием функции CEvent::Send — почему то нет.

Подскажите, кто-нибудь с таким сталкивался? Как это лечится?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



  • Главная
  • Справочник
  • Информатика
  • PHP
  • Программирование
  • 1С Битрикс проблема отправки писем CEvent::Send
  • Проверка настроек
  • На хостинге проблема с функцией mail

Пробуем починить отправку почты на сайте под управлением 1С Битрикс. Идем от простого к сложному по шагам.

Проверка настроек

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

  • Событие : Настройки > Настройки продукта > Почтовые и СМС события > Типы событий
  • Шаблон: Настройки > Настройки продукта > Почтовые и СМС события > Почтовые шаблоны
  1. Почтовое событие существует и в вашу функцию CEvent->Send() передается верное значение идентификатора типа события.

    Тип: FEEDBACK_FORM
    Название: Отправка сообщения через форму обратной связи

  2. Событию назначен хотя бы один почтовый шаблон.
  3. Шаблон события активен и в обязательных полях стоят правильные значения или шаблоны значений.

На хостинге проблема с функцией mail

Банальная проблема. Делаем тестовый файл, проверяем отправку, если действительно есть проблема, обращаемся к хостеру.
Пример кода:

<?php

    $send_to = ‘your_email@your_email_domen.ru’;

    $headers = ‘From: sender@your_domen.ru’;

    if (mail($send_to‘Тема сообщения’«Проверка функции Mail»$headers)) {

        echo ‘Mail() работает!’;

    } else {

        echo ‘Проблема с функцией Mail()!’;

    }

?>

Если материал понравился Вам и оказался для Вас полезным, поделитесь им со своими друзьями!

  • Сила упругости, возникающая в теле при его деформации, прямо пропорциональна величине этой деформации.

  • 1 Ампер это сила тока, при которой через проводник проходит заряд 1 Кл за 1 сек.

  • 1 чайная ложка, 5 мл жидкости это приблизительно 5 грамм

  • Современный русский алфавит состоит из 33 букв.

  • Морскую милю приравняли к 1862 метрам, сухопутная американская миля равна 1.609344 километра.

  • Парциальное давление каждого газа, входящего в состав смеси, это давление, которое создавалось бы той же массой данного газа, если он будет занимать весь объем смеси при той же температуре.

  • Один морской узел равен одной тысяче восемьсот пятьдесят двум метрам или одному километру восемьсот пятьдесят двум метрам

В сегодняшней статье хочу рассказать об основных проблемах с почтой в CMS 1с-Битрикс.
Порой до адресата не доходят письма и нужно понять, а отправляются ли они вообще? А может они были отправлены, но возникли, какие-то другие ошибки. Так что же делать в таких ситуациях?

ПРОВЕРИТЬ ОТПРАВЛЯЮТСЯ ЛИ ПИСЬМА

Для проверки достаточно на любой страничке написать следующий php код:



$mail="my@mail.ru"; // ваша почта $subject ="Test" ; // тема письма $text= "Line 1nLine 2nLine 3"; // текст письма if( mail($mail, $subject, $text) ) { echo 'Успешно отправлено!'; } else{ echo 'Отправка не удалась!'; }

Либо использовать для отправки письма функцию bitrix CEvent::Send. Если письмо не пришло, можно обращаться в тех. поддержку хостера.

СПИСОК ОТПРАВЛЕННЫХ ПИСЕМ

В битриксе нет как такого инструмента, который бы показывал сработавшие почтовые шаблоны и соответствующие отправленные письма. Но всё таки существует обходной путь, как просмотреть их.

Для этого нужно зайти в Админку Битрикс, далее Настройки -> Инструменты -> SQL-запрос. Ввести следующий sql код:

select * from b_event
where event_name like '%form%'
order by date_insert desc

Вместо %form% нужно указать конкретный тип почтового события например так, чтобы посмотреть отправленные письма о новых заказах:

select * from b_event
where event_name like 'SALE_NEW_ORDER'
order by date_insert desc

Либо можете вообще убрать вторую строку. В результате получите таблицу всех сработавших событий. Нас интересует колонка SUCCESS_EXEC.
‘Y’ — означает успешная отправка;
‘N’ или 0 — письмо не отправлено;
‘F’ — ошибка
Если найденные записи имеют значение ‘Y’ — это означает, что они отправлены и проблем быть не должно.
Но у нас всё плохо, значит обращаемся в тех. поддержку хостинга.

Если ‘N’ или 0- письма по какой-то причине не ушли.
Может помочь такое решение:
перейдите по пути: <вашсайт>/bitrix/php_interface/dbconn.php

Закомментируйте или удалите следующие строки:

define('BX_CRONTAB', true);
define('BX_CRONTAB_SUPPORT', true);

Попробуйте протестировать снова. Если после этого SUCCESS_EXEC также имеет значение ‘N’, то перейдите в  <вашсайт>/bitrix/managed_cache/ . Удалите содержимое через модуль управления структурой( не в коем случае не используйте FTP). Если вылезет ошибка, то не хватает доступа. Измените доступ к папкам и повторите снова.

Еще один способ — воспользоваться встроенными методами CMS Битрикс по диагностике.

  • Проверка системы — <вашсайт>/bitrix/admin/site_checker.php
  • Монитор качества — <вашсайт>/bitrix/admin/checklist.php

Ошибки, найденные в процессе диагностики, могут являються причиной вашей проблемы.

Возможная ошибка — почтовый сервер не поддерживает формат письма. Попробуйте изменить настройки отправки.

  • Убрать BBC
  • Убрать дублирование email в заголовке
  • Установить Конвертировать 8-битные заголовки

Если ничего не помогло, попробуйте запросить у хостера логи почтового сервера.

Хочу рассмотреть частный случай:

 НЕ ПРИХОДЯТ НА ПОЧТУ УВЕДОМЛЕНИЯ О ЗАПОЛНЕНИИ ВЕБ-ФОРМ

Шаги решения проблемы:

  1. Переходим в админ панель: Настройки -> Настройки продукта ->Настройки модулей  -> Веб-формы. Отключаем флажок «использовать упрощенный режим». Переходим к настройкам компонента веб-форм на сайте. Вкладка дополнительно. Должен присутствовать флажок активирующий привязку к почтовому шаблону.
  2. Переходим: Панель управления -> Настройки -> Настройки продукта -> Почтовые события. Находим почтовый шаблон для веб-формы. Проверяем правильность данных:
  • Шаблон должен быть активен;
  • Привязан к одному из сайтов(если многосайтовость);
  • От кого: #DEFAULT_EMAIL_FROM#;
  • Кому: #DEFAULT_EMAIL_FROM#».

Для начала необходимо проверить работу почты сайта под управлением Битрикс.

Битрикс посылает почтовые шаблоны функциями CEvent::Send() и CEvent::SendImmediate().

Письмо отправляется, если Битрикс нашел активный почтовый шаблон, подходящий под это событие и соответствующий текущему сайту.

Письма, отправленные через CEvent::Send(), попадают в таблицу b_event.

Чтобы проверить таблицу, существует 2 способа.

Способ 1

Перейдите на страницу ваш_домен/bitrix/admin/perfmon_tables.php и в поле «Фильтр по имени таблицы» введите b_event, далее перейдите по точному совпадению таблицы.

Фильтр по имени таблицы
Фильтр по имени таблицы

Способ 2

Письма, попавшие в b_event, посылаются на агенте (хиты) или на cron (по расписанию) и отправляются не сразу.

Письма, посылаемые через SendImmediate, не попадают в b_event, а отправляются сразу.

Send и SendImmediate — обертки на функцию Битрикса bxmail, которая использует либо стандартную php-функцию mail, либо custom_mail, если она определена.

В Административном разделе сайта перейдите на страницу по адресу Настройки -> Инструменты -> Командная PHP-строка и скопируйте туда данный код:

if( mail("mail_to@mail.com", "letter test", "my letter text",
"From: mail_from@mail.com
Reply-To: mail_from@mail.com
Content-Type: text/plain; charset=windows-1251
Content-Transfer-Encoding: 8bit"
) ){
    echo 'Успешно отправлено!';
}else{
    echo 'Отправка не удалась!';
}

Поля «От кого» (mail_from@mail.com), «Кому» (mail_to@mail.com) поменять на свои.

После этого нажмите на кнопку «ВЫПОЛНИТЬ«.

Командная PHP-строка
Командная PHP-строка

Битриксовская отправка письма — обёртка над функцией mail().

Если в результате выполнения команды появилось сообщение «Отправка не удалась!«, значит функция mail не работает. Свяжитесь с администрацией хостинга.

Далее нужно проверить срабатывает ли штатные события.

На D7:

use BitrixMainMailEvent;
$arFields = array(
    "EVENT_NAME" => "ваше событие",
    "LID" => "код вашего сайта",
    "C_FIELDS" => array(
    "EMAIL"    => "mail_to@mail.com",
    "BCC"    => "mail_to@mail.com",
    "DEFAULT_EMAIL_FROM"    => "mail_from@mail.com",
    ),
    "DUPLICATE"=>"Y",
);
$result=Event::send($arFields);
if($result->GetId()){
    echo 'Успешно отправлено!';
}else{
    echo 'Отправка не удалась!';
}

Проверьте, чтобы поля «DEFAULT_EMAIL_FROM«, «EMAIL«, «EVENT_NAME» были заполнены верно.

Если не поддерживается D7:

$arEventFields = array(
"EMAIL_TO"            => "mail_to@mail.com",
"BCC"                 => "mail_to@mail.com",
"DEFAULT_EMAIL_FROM"    => "mail_from@mail.com",
"ORDER_LIST"    => "состав заказа",
);
$result=CEvent::Send("ваше событие", "код вашего сайта", $arEventFields,'Y');
if(intval($result)){
    echo 'Успешно отправлено!';
}else{
    echo 'Отправка не удалась!';
}

Далее перейдите на страницу по адресу Настройки -> Инструменты -> SQL запрос и введите:

select * from b_event order by id desc

SQL запрос
SQL запрос

Обратите внимание на колонки SUCCESS_EXEC и DUPLICATE. Иногда нужно подождать некоторое время (недолго), пока отработает запись в лог. Первый при установленном значении ‘Y‘ говорит нам, что отправка произошла успешно. Второй, что письмо продублировано на скрытую копию ВСС (например администратору о совершенном заказе).

Что же делать, если значения ‘N‘, а отправка простого mail() выдала ‘Успешно отправлено!’?

Параметр SUCCESS_EXEC сообщает:

  • Y — все письма по всем почтовым шаблонам были успешно отправлены;
  • F — все письма по всем почтовым шаблонам не смогли быть отправлены;
  • P — часть писем отправлена успешно, часть писем — безуспешно;
  • 0 — почтовые шаблоны не были найдены;
  • N — почтовое событие ещё не обрабатывалось функцией CEvent::CheckEvents.

Если там стоит ‘N’

  1. Возможно в настройках продукта включена отправка сообщений по крону. Зайдите в файл /bitrix/php_interface/dbconn.php и проверьте, не определены ли у вас константы BX_CRONTAB и BX_CRONTAB_SUPPORT, если да — убрать их.(ОСТОРОЖНО! Будьте готовы вернуть всё в исходное состояние)
  2. Если после этого SUCCESS_EXEC также N, то необходимо перейти в папку /bitrix/managed_cache/ и попытаться удалить содержимое обязательно через модуль управления структурой, а не через FTP. Если возникла ошибка, исправьте проблему с доступом продукта к папкам. Результатом должно быть удаление файлов и папок из кеша через модуль управления структурой.
  3. Если после выполения команды CEvent::CheckEvents(); в командной строке несколько писем с N меняют статус отправки на другой, нужно добавлять и проверять cron-задачу или переключить отправку писем на хиты.
  4. Поставьте cron-задачу (проверьте, есть ли она вообще) или перенесите отправку на хиты.
  5. Код в init.php, некорректно работающий на cron. Проверьте там редиректы и пустые данные в переменной $_SERVER.

Если там стоит ‘F’ (функция mail() по какой-то причине вернула False)

  1. Может почтовый сервер не поддерживает формат письма. Тогда необходимо:
    • Убрать BBC (лучше добиться, чтоб оно работало, но попробовать отключить можно)
    • Убрать дублирование email в заголовке
    • Установить «Конвертировать 8-битные заголовки»
  2. Может быть это проблемы на стороне почтовой утилиты на сервере. Если почта была настроена, но вдруг перестала отправляться, ошибку нужно искать в логах почтовой утилиты. В стандартном виртуальном окружении Битрикса он находится по адресу /home/bitrix/msmtp_default.log. Проверьте также права на /home/bitrix/.msmtprc. Возможно прав для пользователя bitrix (если стантартное виртуальное окружение) не достаточно на прочтение. Поменяйте владельца на bitrix:bitrix.
  3. Если писем отправляется очень много. В почтовых серверах может стоять ограничение на количество писем в минуту, час или день. Если лимит превышен, письма могут быть не доставлены. Ошибки можно увидеть в логах или узнать у техподдержки почтового сервера. Лечится увеличением пропускного лимита или уменьшением количества отправляемых писем. Например, можно убрать лишних получателей из копий, отключить лишние почтовые шаблоны.
  4. В почтовом шаблоне письма есть заглушка #NAME#, а ключа с таким именем нет в массиве полей в b_event:
    • e-mail отправителя или получателя имеет неправильный формат;
    • заглушека #NAME# не может подставиться;
    • какой-то из необходимых заголовков не задан в почтовом шаблоне в административной части сайта;
    • в почтовом клиенте неверно настроено соответствие заголовков;
    • отправитель письма не соответствует тому, что ожидает почтовый сервер.
  5. Битрикс заполняет заглушку #BCC# в полях Кому и Копии только в письмах, отправляемые модулем Интернет-магазин (например, создание заказа). Если вы добавите #BCC# в Кому или Копию в шаблон регистрации пользователя или в свой кастомный, или любой другой шаблон без приставки SALE — письмо не отправится и будет иметь статус отправки F.
  6. Обработчики событий отправки писем сработали неверно.
  7. Обратите внимание на функцию custom_mail. Если она определена, значит заменяет стандартную mail. Даже если она отработала корректно (отослались письма), статус может быть F или 0. Проверьте тариф используемого SMTP, проверьте логины, пароли, а также адрес отправителя. Обычно используют класс PhpMailer. Включите дебаг и посмотрите ошибки.
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
$from = 'адрес отправителя';
$mail = new PHPMailer(true);
$mail->SMTPDebug = 1;                                       // включаем дебаг
$mail->isSMTP();                                            // включаем SMTP
$mail->Host       = '';  //  SMTP сервер
$mail->SMTPAuth   = true;                                   // включаем авторизацию
$mail->Username   = $from;                     // SMTP логин
$mail->Password   = '';                               // SMTP пароль
$mail->SMTPSecure = 'ssl';                                  // включаем шифрование
$mail->Port       = 465;                                    // используемый TCP порт

//Recipients
$mail->setFrom($from, 'Арт-Деко'); //от кого
$mail->addAddress(''); //кому
// Content
$mail->CharSet = "UTF-8"; //кодировка
$mail->isHTML(true);                                  // формат письма HTML
$mail->Subject = '=test=';
$mail->Body = '=test body=';
$mail->send();
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/mail_log.log',serialize($mail->ErrorInfo).PHP_EOL,FILE_APPEND);

Если стоит NULL

API работает только с записями, у которых значение «N«, поэтому попробуем исправить сам столбец таблицы.

Для этого перейдите на Настройки -> Инструменты -> SQL запрос и введите:

alter table b_event modify SUCCESS_EXEC char(1) not null default 'N';

SQL запрос
SQL запрос

Если стоит «0»

  1. Неправильно настроен шаблон сообщения. Посмотрите правильность зополнения полей. Мало ли.
  2. В почтовом шаблоне снята галочка активности или нет привязки к нужному сайту.
  3. Обработчики событий отправки писем сработали неверно.

Если ничего не помогло

  • Просите у хостера логи почтового сервера.
  • По возможности проверить размер таблицы b_event (через phpmyadmin к примеру).
  • Если дешевый тариф, то посмотреть использование памяти сервером.
  • Возможно у хостера стоит ограничение на вес письма.

Проверка домена в настройках сайта

Для отправки писем важно, чтобы домен, с которого отправляются письма, был прописан в настройках сайта.

В Административном разделе перейдите на Настройки -> Настройки продукта -> Сайты -> Список сайтов и нажмите на id сайта, с которого идет отправка письма:

Список сайтов
Список сайтов

На странице настроек сайта проверьте поле «Доменное имя«. Если там не указан домен, с которого отправляются письма, то введите его:

Редактирование сайта
Редактирование сайта

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

Понравилась статья? Поделить с друзьями:
  • Certificateservicesclient certenroll ошибка 86
  • Certificateservicesclient certenroll 86 win10 как исправить
  • Certificate validation failure cisco anyconnect как исправить windows 10 64 bit
  • Certificate validation failure cisco anyconnect как исправить mac os
  • Certificate validation error failed to verify certificate chain ca not trusted