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

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

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

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

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

<?
$mail="my@mail.ru"; // ваша почта
$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’, то перейдите по пути: <вашсайт>/bitrix/php_interface/dbconn.php

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

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

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

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

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

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

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

 Не приходят на почту уведомления о заполнении веб-форм

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

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

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

 

 

ПоделитьсяShare on Facebook0Share on VKShare on Google+0Tweet about this on TwitterShare on LinkedIn0Pin on Pinterest0

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

  • Максим:

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

    • 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 «Почему не приходят на почту уведомления о заполнении веб-форм?»

  • Valeri:

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

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

  • Rushan:

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

Добавить комментарий