Проблема с отправкой писем в Битрикс

Приветствую читателей thisis-blog.ru!

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

Проверить отправляются ли письма

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

$mail="[email protected]"; // ваша почта
$subject ="Test" ; // тема письма
$text= "Line 1\nLine 2\nLine 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#».

Спасибо за внимание, также читайте статью про то, как Добавить поле в почтовый шаблон.

Рекомендуем к прочтению



14 комментариев

  • Максим:

    Вы считаете нормальным если у коммерческой системы возникают проблемы с отправкой почты? я всё же придерживаюсь мнения что уж если и приобретать систему за деньги так у неё не должны возникать проблемы с отправкой почты.

    • shapito27:

      Наши мнения на этот счет практически не отличаются. В большинстве случаев проблема не в коммерческой системе, а в хостинге , либо человеке, работающем с системой который может что-то сломать. Ни кто не застрахован от ошибок на 100%.

  • Иван:

    Спасибо, очень помогла ваша статья.
    Но почему-то получилось отобразить только почтовые события за последние 15 суток. Не подскажите, где можно настроить срок хранения почтовых событий или что-то типо того?

  • Вика:

    Добрый день, подскажите, а если событие вообще не срабатывает, где можно посмотреть ошибку? на странице контактов стандартный компонент, не кастомизированный. При нажатии на кнопку «Отправить» вообще ничего не происходит, даже страница не перегружается. Компонент настроен, указан емейл, куда отправляются сообщения, из списка выбрано почтовое событие. В настройках событий стоит галочка, что оно активно. Функция mail() работает, через командную строку отправляет сообщение. Но на странице с компонентом вообще не работает. Пробовала выполнить запрос к базе
    select * from b_event order by date_insert desc
    но сообщения даже нет в списке. Событие просто не срабатывает. Подскажите пожалуйста, где посмотреть? Спасибо.

    • Алексей:

      Кажется проблема с компонентом, еще актуален вопрос? Напишите почту для связи попробую помочь.

  • Юрий:

    Добрый день!
    У меня в поле SUCCESS_EXEC показано F, что это значит? Данное письмо не ушло пользователю.

    • shapito27:

      Здравствуйте. F — значит функция отправки письма mail() вернула false. Нужно проверить конфигурацию SMTP, либо обратиться к администратору хостинга за этим делом. Подробнее прочитайте тут http://dev.1c-bitrix.ru/support/faq/8370/#185365 «Почему не приходят на почту уведомления о заполнении веб-форм?»

    • Юрий, ошибка может быть как со стороны хостинга, так и со стороны самой CMS.
      Была такая же проблема. Сначала хостинг проверил cron настройку у себя, проверили настройку stmp. Почта начала приходить по обычному php скрипту.
      После этого настроили корректно cron на самом сайте через панель битрикс CMS + поправили пару файлов, и cron корректно заработал.
      Все формы отправляются.
      В таких случаях нужно поступательно проходить по всем шагам, которые могут создавать ошибки и проверять, чтобы все работало корректно.

  • Valeri:

    Добрый день.
    А если такая ситуация не отрабатывает тип почтового события «Новый заказ», на почту не приходит письмо о формировании заказа, при этом все остальные типы отрабатываю (Изменение статуса, Выполнение, Отмена). При запросе
    select * from b_event
    where event_name like ‘SALE_NEW_ORDER’
    order by date_insert desc

    В таблице просто написано Нет данных.

    • Артем:

      Есть ли у вас вообще шаблон данного типа SALE_NEW_ORDER.
      Стоит ли привязка в нем к нужному сайте и он активен?

  • Rushan:

    Кстати, если битрикс установлен на виртуальную машину bitrix environment то почта не будет отправляться до тех пор пока не настроишь почту через меню настройки виртуальной машины, в большинстве случаев виноваты настройки сервера.
    Если не просто хостинг — то можно посмотреть логи сервера, а если

  • Василий:

    Спасибо тебе, добрый человек. После установки коробки на ящики пользователей сыпались сотнями уведомления о необработанных лидах, причем уже давно удаленных. Только SQL запрос помог выявить тот почтовый шаблон, который генерировал всё это безобразие.

Оставить комментарий

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания применять.

Срок проверки reCAPTCHA истек. Перезагрузите страницу.