Что делать если на сайте происходит событие которое должно отправить письмо, но эти письма не доходят до адресата?

Для начала проверим может ли сайт отправить письмо прямым методом

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

Таким образом вы сможете сразу понять работает ли данный функционал

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

select * from b_event
where event_name like 'тип почтового события'
order by date_insert desc

В поле "тип почтового события", нужно указать конкретное событие. Например:

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

Можно не указывать тип почтового сообщения, в таком случае запрос будет выглядеть так:

select * from b_event
order by date_insert desc

После выполнения любого из этих запросов ищем колонку "SUCCESS_EXEC", если в данном поле указано значение "Y", значит сайт свой функционал реализует. Если письма при этом не доходят, то нужно обратиться к ТП хостинга

Описание всех статусов:

  • "Y" - успешная отправка
  • "N" или "0" - письмо не отправлено
  • "F" - ошибка

Если после выполнения запросов SQL будет "N" или "0", то вам может помочь следующее решение:

перейдите по пути: <вашсайт>/bitrix/php_interface/dbconn.php и закомментируйте следующие строки:

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

После этого снова попробуйте выполнить SQL запрос

В случае если это не помогло, можете попробовать почистить кэш.

Если ничего не помогло - обратитесь к нам и мы обязательно решим ваш вопрос.

Готовы сделать всю работу за Вас
от2000
  • 60 минут


Поработаем?

Опишите свой запрос, мы расчитаем стоимость вашей задачи.