1с битрикс не отправляются письма
Давайте перейдем по пути Панель управления -> Настройки -> Настройки продукта -> Почтовые события и выберем событие.
1. На первой вкладке галочки кодов языка включены?
2. На вкладке "Шаблоны" галочка имени сайта включена?
3. Почтовый шаблон активен?
Все верно? Смотрим дальше. В настройках модуля веб-формы отключите галочку "использовать упрощенный режим". Перейдите в настройки формы на вкладку "дополнительно" и проверьте, включен ли флаг привязки к почтовому шаблону. Готово?
Перейдите по адресу Настройки -> Инструменты -> SQL-запрос и выполните такой запрос:
select * from b_event where event_name like ‘%form%’ order by date_insert desc
и проверьте, определены ли 2 переменные: BX_CRONTAB и BX_CRONTAB_SUPPORT. Если да, то отмените определение.
Повторите SQL-запрос и снова просмотрите поле SUCCESS_EXEC. Если снова видите "N", очистите кэш в папке /bitrix/managed_cache/ через модуль управления структурой. Ни в коем случае ни через FTP! Если модуль выдаст ошибку, исправьте права доступа к папкам.
Если же значение "F", то функция mail() вернула значение False при отправке. Почему так бывает:
1. Не настроена функция mail() на хостинге. Обратитесь в техподдержку хостера.
Наконец, если в поле "0", вернитесь к началу, настройкам почтовых событий, и проверьте заново.
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!
Почему битрикс не отправляет письма
Проверить работу почты сайта под управлением Битрикс:
Битрикс посылает почтовые шаблоны функциями CEvent::Send() и CEvent::SendImmediate().
Письмо отправляется, если Битрикс нашел активный почтовый шаблон, подходящий под это событие и соответствующий текущему сайту.
Письма отправлены через CEvent::Send() попадают в таблицу b_event.
Чтоб проверить таблицу существует 2 способа
первый: перейти на страницу
и в поле Фильтр по имени таблицы ввести b_event. перейти по точному совпадению таблицы.
другой: описан ниже
Письма, попавшие в b_event, посылаются на агенте (хиты) или на cron (по расписанию). Отправляются не сразу.
Письма, посылаемые через SendImmediate не попадают в b_event, а отправляются сразу.
Send и SendImmediate — обертки на функцию Битрикса bxmail, которая использует либо стандартную php-функцию mail, либо custom_mail, если она определена.
Административный раздел->Рабочий стол->Настройки->Инструменты->Командная PHP-строка скопировать туда:
Поля "От кого" (mail_from@mail.com), "Кому"(mail_to@mail.com) поменять на свои.
Нажать ВЫПОЛНИТЬ.
Битриксовская отправка письма — обёртка над функцией mail().
Если "Отправка не удалась!" функция mail не работает, свяжитесь с администрацией хостинга.
Далее нужно проверить срабатывает ли штатные события.
На D7:
Проверьте что поля "DEFAULT_EMAIL_FROM", "EMAIL", "EVENT_NAME" заполнены верно.
Если не поддерживается D7:
Административный раздел->Рабочий стол->Настройки->Инструменты->SQL запрос пишем
Обращаем свое внимание на колонки SUCCESS_EXEC и DUPLICATE. Иногда нужно подождать некоторое время (недолго) пока отработает запись в лог. Первый при установленном значении ‘Y’ говорит нам что отправка произошла успешно. Второй что письмо продублировано на скрытую копию ВСС (например администратору о совершенном заказе).
Что же делать если значения ‘N’, а отправка простого mail() выдала ‘Успешно отправлено!’ ?
Параметр SUCCESS_EXEC сообщает
Y — все письма по всем почтовым шаблонам были успешно отправлены
F — все письма по всем почтовым шаблонам не смогли быть отправлены
P — часть писем отправлена успешно, часть писем — безуспешно
0 — почтовые шаблоны не были найдены
N — почтовое событие ещё не обрабатывалось функцией CEvent::CheckEvents
Если там стоит ‘N’
3) если после виполения команды CEvent::CheckEvents(); в командной строке несколько писем с N меняют статус отправки на другой нужно добавлять и проверять cron-задачу или переключить отправку писем на хиты.
4) Поставить cron-задачу(проверить есть ли она вобще) или перенести отправку на хиты.
5) Код в init.php, некорректно работающий на cron. Проверьте там редиректы и пустые данные в переменной $_SERVER.
Если там стоит ‘F’(функция mail() по какой-то причине вернула False)
2)Может быть это проблемы на стороне почтовой утилиты на сервере.
Если почта была настроена, но вдруг перестала отпарвляться, ошибку нужно искать в логах почтовой утилиты. В стандартном виртуальном окружении Битрикса это /home/bitrix/msmtp_default.log
проверьте также права на
/home/bitrix/.msmtprc
возможно прав для пользователя bitrix (если стантартное виртуальное окружение) не достаточно на прочтение. Поменяйте владельца на bitrix:bitrix
3) Если писем отправляется очень много.
В почтовых серверах может стоять ограничение на количество писем в минуту, час или день. Если лимит превышен, письма могут быть не доставлены. Ошибки можно увидеть в логах или узнать у техподдержки почтового сервера. Лечится увеличением пропускного лимита или уменьшением количества отправляемых писем. Например, убрать лишних получателей из копий, отключить лишние почтовые шаблоны.
e-mail отправителя или получателя имеет неправильный формат;
— какой-то из необходимых заголовков не задан в почтовом шаблоне в административной части сайта;
— в почтовом клиенте неверно настроено соответствие заголовков;
— отправитель письма не соответствует тому, что ожидает почтовый сервер.
Если ничего не помогло, просите у хостера логи почтового сервера.
По возможности проверить размер таблицы b_event (через phpmyadmin к примеру).
Если дешевый тариф то посмотреть использование памяти сервером.
Возможно у хостера стоит ограничение на вес письма.
Если письмо отправилось, но вы его не видите не забудьте перепроверить спам фильтр на почте, на которую отправляли.
Проблема с отправкой писем в Битрикс
В сегодняшней статье хочу рассказать об основных проблемах с почтой в CMS 1с-Битрикс.
Порой до адресата не доходят письма и нужно понять, а отправляются ли они вообще? А может они были отправлены, но возникли, какие-то другие ошибки. Так что же делать в таких ситуациях?
ПРОВЕРИТЬ ОТПРАВЛЯЮТСЯ ЛИ ПИСЬМА
Для проверки достаточно на любой страничке написать следующий php код:
$mail="my@mail.ru"; // ваша почта $subject ="Test" ; // тема письма $text= "Line 1\nLine 2\nLine 3"; // текст письма if( mail($mail, $subject, $text) ) < echo ‘Успешно отправлено!’; >else
Либо использовать для отправки письма функцию bitrix CEvent::Send. Если письмо не пришло, можно обращаться в тех. поддержку хостера.
СПИСОК ОТПРАВЛЕННЫХ ПИСЕМ
В битриксе нет как такого инструмента, который бы показывал сработавшие почтовые шаблоны и соответствующие отправленные письма. Но всё таки существует обходной путь, как просмотреть их.
Для этого нужно зайти в Админку Битрикс, далее Настройки -> Инструменты -> SQL-запрос. Ввести следующий sql код:
Вместо %form% нужно указать конкретный тип почтового события например так, чтобы посмотреть отправленные письма о новых заказах:
Либо можете вообще убрать вторую строку. В результате получите таблицу всех сработавших событий. Нас интересует колонка SUCCESS_EXEC.
‘Y’ — означает успешная отправка;
‘N’ или 0 — письмо не отправлено;
‘F’ — ошибка
Если найденные записи имеют значение ‘Y’ — это означает, что они отправлены и проблем быть не должно.
Но у нас всё плохо, значит обращаемся в тех. поддержку хостинга.
Если ‘N’ или 0- письма по какой-то причине не ушли.
Может помочь такое решение:
перейдите по пути: /bitrix/php_interface/dbconn.php
Закомментируйте или удалите следующие строки:
Попробуйте протестировать снова. Если после этого SUCCESS_EXEC также имеет значение ‘N’, то перейдите в /bitrix/managed_cache/ . Удалите содержимое через модуль управления структурой( не в коем случае не используйте FTP). Если вылезет ошибка, то не хватает доступа. Измените доступ к папкам и повторите снова.
Еще один способ — воспользоваться встроенными методами CMS Битрикс по диагностике.
- Проверка системы — /bitrix/admin/site_checker.php
- Монитор качества — /bitrix/admin/checklist.php
Ошибки, найденные в процессе диагностики, могут являються причиной вашей проблемы.
Возможная ошибка — почтовый сервер не поддерживает формат письма. Попробуйте изменить настройки отправки.
Если ничего не помогло, попробуйте запросить у хостера логи почтового сервера.
В сегодняшней статье хочу рассказать об основных проблемах с почтой в CMS 1с-Битрикс.
Порой до адресата не доходят письма и нужно понять, а отправляются ли они вообще? А может они были отправлены, но возникли, какие-то другие ошибки. Так что же делать в таких ситуациях?
ПРОВЕРИТЬ ОТПРАВЛЯЮТСЯ ЛИ ПИСЬМА
Для проверки достаточно на любой страничке написать следующий php код:
$mail="my@mail.ru"; // ваша почта $subject ="Test" ; // тема письма $text= "Line 1\nLine 2\nLine 3"; // текст письма if( mail($mail, $subject, $text) ) < echo 'Успешно отправлено!'; >else
Либо использовать для отправки письма функцию bitrix CEvent::Send. Если письмо не пришло, можно обращаться в тех. поддержку хостера.
СПИСОК ОТПРАВЛЕННЫХ ПИСЕМ
В битриксе нет как такого инструмента, который бы показывал сработавшие почтовые шаблоны и соответствующие отправленные письма. Но всё таки существует обходной путь, как просмотреть их.
Для этого нужно зайти в Админку Битрикс, далее Настройки -> Инструменты -> SQL-запрос. Ввести следующий sql код:
Вместо %form% нужно указать конкретный тип почтового события например так, чтобы посмотреть отправленные письма о новых заказах:
Либо можете вообще убрать вторую строку. В результате получите таблицу всех сработавших событий. Нас интересует колонка SUCCESS_EXEC.
‘Y’ — означает успешная отправка;
‘N’ или 0 — письмо не отправлено;
‘F’ — ошибка
Если найденные записи имеют значение ‘Y’ — это означает, что они отправлены и проблем быть не должно.
Но у нас всё плохо, значит обращаемся в тех. поддержку хостинга.
Если ‘N’ или 0- письма по какой-то причине не ушли.
Может помочь такое решение:
перейдите по пути: /bitrix/php_interface/dbconn.php
Закомментируйте или удалите следующие строки:
Попробуйте протестировать снова. Если после этого SUCCESS_EXEC также имеет значение ‘N’, то перейдите в /bitrix/managed_cache/ . Удалите содержимое через модуль управления структурой( не в коем случае не используйте FTP). Если вылезет ошибка, то не хватает доступа. Измените доступ к папкам и повторите снова.
Еще один способ — воспользоваться встроенными методами CMS Битрикс по диагностике.
- Проверка системы — /bitrix/admin/site_checker.php
- Монитор качества — /bitrix/admin/checklist.php
Ошибки, найденные в процессе диагностики, могут являються причиной вашей проблемы.
Возможная ошибка — почтовый сервер не поддерживает формат письма. Попробуйте изменить настройки отправки.
Если ничего не помогло, попробуйте запросить у хостера логи почтового сервера.
Хочу рассмотреть частный случай:
НЕ ПРИХОДЯТ НА ПОЧТУ УВЕДОМЛЕНИЯ О ЗАПОЛНЕНИИ ВЕБ-ФОРМ
Шаги решения проблемы:
Денис Бунаков
C 2012 года разрабатываю и поддерживаю сайты на 1С Битрикс. У меня вы можете заказать услуги по разработки или поддержке сайта на битриксе
Предыдущий пост
Битрикс: вывод отладочной информации
Следующий пост
В сегодняшней статье хочу рассказать об основных проблемах с почтой в CMS 1с-Битрикс.
Порой до адресата не доходят письма и нужно понять, а отправляются ли они вообще? А может они были отправлены, но возникли, какие-то другие ошибки. Так что же делать в таких ситуациях?
Проверить отправляются ли письма
Для проверки достаточно на любой страничке написать следующий php код:
Либо использовать для отправки письма функцию bitrix CEvent::Send.
Если письмо не пришло, можно обращаться в тех. поддержку хостера.
Список отправленных писем
В битриксе нет как такого инструмента, который бы показывал сработавшие почтовые шаблоны и соответствующие отправленные письма. Но всё таки существует обходной путь, как просмотреть их.
Для этого нужно зайти в Админку Битрикс, далее Настройки -> Инструменты -> SQL-запрос. Ввести следующий sql код:
Вместо %form% нужно указать конкретный тип почтового события например так, чтобы посмотреть отправленные письма о новых заказах:
Либо можете вообще убрать вторую строку. В результате получите таблицу всех сработавших событий. Нас интересует колонка SUCCESS_EXEC.
‘Y’ — означает успешная отправка;
‘N’ или 0 — письмо не отправлено;
‘F’ — ошибка
Если найденные записи имеют значение ‘Y’ — это означает, что они отправлены и проблем быть не должно.
Но у нас всё плохо, значит обращаемся в тех. поддержку хостинга.
Если ‘N’ или 0- письма по какой-то причине не ушли.
Может помочь такое решение:
перейдите по пути: /bitrix/php_interface/dbconn.php
Закомментируйте или удалите следующие строки:
Попробуйте протестировать снова. Если после этого SUCCESS_EXEC также имеет значение ‘N’, то перейдите в /bitrix/managed_cache/ . Удалите содержимое через модуль управления структурой( не в коем случае не используйте FTP). Если вылезет ошибка, то не хватает доступа. Измените доступ к папкам и повторите снова.
Еще один способ — воспользоваться встроенными методами CMS Битрикс по диагностике.
- Проверка системы — /bitrix/admin/site_checker.php
- Монитор качества — /bitrix/admin/checklist.php
Ошибки, найденные в процессе диагностики, могут являються причиной вашей проблемы.
Возможная ошибка — почтовый сервер не поддерживает формат письма. Попробуйте изменить настройки отправки.
Если ничего не помогло, попробуйте запросить у хостера логи почтового сервера.
Хочу рассмотреть частный случай:
Не приходят на почту уведомления о заполнении веб-форм
Шаги решения проблемы:
Спасибо за внимание, также читайте статью про то, как Добавить поле в почтовый шаблон.
В этой статье мы расскажем вам о том, где смотреть причины ошибки неотправленной почты в Битриксе. Рассмотрим три основных мест, откуда можно найти ошибку отправки писем.
Проверка таблицы очереди писем
Идем в административную панель Битрикса по пути: Настройки / Производительность / Таблицы. Ищем таблицу b_event и проваливаемся по ссылке.
Именно в эту таблицу попадают письма с сайта в очередь, а затем отправляются на хитах или на агентах.
Варианты статуса отправки (SUCCESS_EXEC):
Y – означает, что письмо было успешно отправлено
N – говорит о том, что событие еще не обработано и письмо не отправлено. В этом случае стоит полную проверку сайта и проверить настройки dbconn.php. Проверить корректность настройки почтовых шаблонов и их привязки к сайтам.
0 – не активен или отсутствует почтовый шаблон (Настройки / Настройки продукта / Почтовые шаблоны)
Проверка системы
Проверка системы расположена на странице Настройки / Инструменты / Проверка системы. В проверке уже встроен инструмент, который проверяет возможность отправки письма с помощью стандартной PHP функции mail. Этаки быстрый проверяльщик работы почты.
Если здесь уже возникает ошибка, то проблему стоит идти смотреть в логи сервера.
Проверка логов сервера
Если ошибка ошибка идет глубже и у вас VM Bitrix, идем в консоль сервера по пути /home/bitrix/ и ищем логи с префиксом .msmtp_ (по умолчанию). Смотрим и ловим ошибки в этом файле. Логи лучше просматривать с помощью утилиты mc.
Сама конфигурация почтовых настроек расположена в файле /home/bitrix/.msmtrpc
Если письма в Битриксе отмечены как успешно отправленные, но письмо не пришло и в логах отсутствует какая-либо информация – следует обратить внимание на логи в /var/log/. Там отобразится ошибка, которая возвращается функцией mail.
Проверить возможность отправки также можно с помощью консольных команд (но в данном случае будет использоваться отправитель по умолчанию – default)
Ошибки
Частая ошибка – это когда в письмах отправителем указан адрес отличимый от названия аккаунта (поле FROM). Поэтому задайте в настройках сайта нужный адрес или в почтовых шаблонах в поле «От кого». В этом случае, если требуется, чтобы человек мог ответить на другую почту, то можете указать электронную почту в качестве обратного адреса в почтовом шаблоне.
Другая ошибка – это отсутствие настроек для отправителя по умолчанию. Необходимо внести корректные настройки адреса отправителя (указать tsl, метод авторизации и т.п.)
На этом все, надеюсь статья была вам полезна. Если у вас возникнут вопросы, задавайте в комментарий.
Не редкость что у пользователей или начинающих программистов после установки продукта по каким то непонятным причинам не происходит отправка писем из 1С-Битрикс.
Перед тем как приступать к устранению попробуйте проверить отправляется ли почта через функцию php, mail. Проверить можно в левом меню Настройки -- Инструменты -- Командная PHP-строка. В текстовом поле введите примерно следующее.
$headers = "From: test@". $_SERVER['HTTP_HOST'] . "\r\n" .
"Reply-To: test@". $_SERVER['HTTP_HOST'] . "\r\n" .
"X-Mailer: PHP/" . phpversion();
if( mail("mymail@mydomain.ru","my test theme","my test message",$headers) )
echo "Почта работает!";
>else
echo "Почта не работает! Скорее всего проблема в sendmail";
>
Как правило на это есть всего несколько основных причин.
Вторая причина: Виноват ваш хостинг. Либо стоит ограничение на количество отправки писем в час/сутки либо на хостинге не верно указан отправитель. Вариантом исправления может быть далеко не один. Мы расскажем вам о паре вариантов в ОС Linux Debian.
Первый если у вас установлен ispmanager (так же подходит для тех у кого виртуальный хостинг) отредактируйте файл /var/www/USER/data/php-bin/.php.ini если в нем нет строки sendmail_path = "/usr/sbin/sendmail -t -i -f mymail@mydomain.ru" добавьте ее mymail@mydomain.ru измените на ваш реальный почтовый ящик (существующий).
Второй у вас голый сервер т.е. только консоль. То выясните в каком режиме работает ваш сайт. К примеру если в режиме CGI, fastCGI то отредактируйте файл /etc/php5/cgi/php.ini. Найдите в этом файле строку sendmail_path как показано на рисунке
раскомментируйте sendmail_path и исправьте ее как в первом варианте на sendmail_path = "/usr/sbin/sendmail -t -i -f mymail@mydomain.ru". Сохраните и перезапустите apache.
Третья причина: Пожалуй самая глупая. Не выбран сайт в почтовом шаблоне Битрикс, на рисунке все четко показано.
Необходимо просто поставить галочку и сохранить почтовый шаблон.
Почтовые шаблоны находятся в левом меню Настройки -- Настройки продукта -- Почтовые события -- Почтовые шаблоны. Обязательно проверьте что бы на необходимых шаблонах был выбран ваш сайт.
Читайте также: