1с битрикс не отправляются письма

Обновлено: 07.07.2024

Проверить работу почты сайта под управлением Битрикс:

Битрикс посылает почтовые шаблоны функциями 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

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

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

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

Не редкость что у пользователей или начинающих программистов после установки продукта по каким то непонятным причинам не происходит отправка писем из 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";
>

Как правило на это есть всего несколько основных причин.

Настройка отправки почты рис.1

Вторая причина: Виноват ваш хостинг. Либо стоит ограничение на количество отправки писем в час/сутки либо на хостинге не верно указан отправитель. Вариантом исправления может быть далеко не один. Мы расскажем вам о паре вариантов в ОС 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.

Почтовый шаблон битрикс

Третья причина: Пожалуй самая глупая. Не выбран сайт в почтовом шаблоне Битрикс, на рисунке все четко показано.

Необходимо просто поставить галочку и сохранить почтовый шаблон.
Почтовые шаблоны находятся в левом меню Настройки -- Настройки продукта -- Почтовые события -- Почтовые шаблоны. Обязательно проверьте что бы на необходимых шаблонах был выбран ваш сайт.

Мы в «Авиви» обратили внимание на частые запросы от пользователей коробочного Битрикс24 по решению проблемы с нерабочей почтой. Во всех случаях прослеживается один и тот же сценарий: когда в коробку пытаются подключить новый почтовый ящик, домен которого отличается от того, на который регистрировался Портал, — письма просто не отправляются. Мы разобрали ситуацию и даже создали собственное решение. Но в целом, пользователям следует знать, что это совсем не «баги» Битрикс24, а закономерность.

Причина нерабочей почты

Смотреть нужно, в первую очередь, на настройки SMTP. «Simple Mail Transfer Protocol» или простой протокол передачи почты отвечает в Битрикс24 не только за электронную почту, но и за приглашение сотрудников в портал, все уведомления и многое другое. В облачной версии набора инструментов для бизнеса, SMTP-сервер находится на стороне разработчиков, ими поддерживается и конфигурируется для широких масс пользователей со всего мира. Поэтому в облаке не составит проблем подключить к своей системе произвольный почтовый ящик, получать и отправлять с него письма.


В коробочной редакции SMTP идет в комплекте с остальными компонентами Битрикс24 и работает уже на Вашем сервере. Его настройка происходит вместе с развертыванием коробки и здесь кроется ключ ко всем последующим трудностям. Обычно SMTP «затачивают» только для доменного имени почты, на которую происходит регистрация портала. Это логично, поскольку неизвестно, почту на каком другом домене, которых в мире миллионы, захотите использовать Вы или Ваши сотрудники.

Каверзная ситуация

Эта особенность создает впечатление поломки Битрикс24, хотя такой вовсе не является. Поэтому если у Вас такая же проблема — не спешите ставить диагноз системе. Ведь программа просто не понимает что от нее хотят.

Два простых решения

Первым решением ситуации с почтой может быть настройка SMTP. Если Вы знаете, как это сделать — можете закрывать эту вкладку.

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

Способности модуля

Кому интересно, мы научили наше решение следить за проверкой отправителя (from). Если доменное почтового сервиса отличается от того, что указано по умолчанию для коробочного Битрикс24, модуль включается в работу и отправляет письмо с нужными настройками SMTP.


Последнее, но не менее важное: наше решение не является кастомизацией ядра, поэтому всем подходит и не ломается от обновлений локальной редакции. Одним словом — получилась, так сказать, панацея, если сравнить с болезнью ситуацию с SMTP.

Собственные почтовые ящики возможно подключить через протокол IMAP. А можно и создать собственный, с которым модуль также работает корректно.

Все, что разработчики Битрикс24 сами добавляют в систему, в дополнительных настройках не нуждается, модуль их понимает. Таким образом не имеет значения, существует почтовый сервис сейчас, или будет придуман в недалеком будущем — проблем с его использованием не будет.

Последнее, но не менее важное: наше решение не является кастомизацией ядра, поэтому всем подходит и не ломается от обновлений локальной редакции. Одним словом — получилась, так сказать, панацея, если сравнить с болезнью ситуацию с SMTP.

Электронная почта — популярный канал связи с клиентами. С помощью нее компании делятся новостями, полезным контентом и рассказывают подробнее о продуктах.

Мы подготовили лонгрид, в котором подробно рассказываем о:

  1. способах отправки писем на электронную почту,
  2. нюансах настроек,
  3. исправлении ошибок.

Отправление писем с php mail();

  1. «to» на электронную почту получателя;
  2. «subject» — заголовок вашего письма;
  3. «text» — текст вашего письма по строкам.


Отправьте письмо адресату с помощью кнопки «Выполнить».

Функция mail использует локальный почтовый сервер. С ним связаны ограничения: он может отсутствовать, быть прописан в черных списках или негативно влиять на производительность.

  1. Нет подписи DKIM. Подтверждает подлинность отправителя с помощью ключа DKIM. Подпись предотвращает замену письма злоумышленниками.
  2. Нет SPF-записи. Защищает от писем с поддельными адресами отправителей из вашего домена. Для ее настройки создается TXT-запись. В ней перечисляют серверы, которые могут отправлять письма от имени домена, и механизм обработки писем, отправленных от других серверов.
  3. Нет шифрования. Обеспечивает конфиденциальность передачи данных. Для настройки нужно установить SSL-сертификат или TLS-сертификат.

Результат отправки письма с php mail();

Безопасность письма обеспечена только стандартным шифрованием, которое установлено автоматически между сервером Reddock и сервером почтового сервиса.


Подписей отправитель письма не имеет. Значит, такое письмо могло быть отправлено и злоумышленниками.


Отправление писем из ядра 1С-Битрикс

  1. тип почтового события,
  2. почтовый шаблон,
  3. почтовое событие.


Тип почтового события и почтовый шаблон можно настроить в административной панели: Настройки (1) → Настройки продукта (2) → Почтовые и СМС события (3). В последнем выбрать необходимое действие.

Само почтовое событие отправляется функцией send. С помощью нее происходит отправка письма. Для этого нужно перейти в Настройки (1) → Инструменты (2) → Командная PHP-строка (3). Введем в поле код из примера документации 1С-Битрикс для разработчиков. В нем замените e-mail получателя на адрес вашей электронной почты и нажмите «Выполнить».


Код:// D7 use Bitrix\Main\Mail\Event; Event::send(array( "EVENT_NAME" => "NEW_USER", "LID" => "s1", "C_FIELDS" => array( "EMAIL" => "info@intervolga.ru", ), ));

Результат отправки письма из ядра 1С-Битрикс


Письмо не пришло ни на Яндекс.Почту, ни на Gmai, поэтому проверим его статус. Для этого перейдите в панели администрирования в Настройки (1) → Производительность (2) → Таблицы (3) и выберите таблицу «b_event» (4).

Проверка отправки писем с помощью форм на сайте

Результат отправки с помощью форм


Мы проверили качество отправки писем с помощью mail-tester. Для этого использовали форму подписки на email-рассылку, вставили предлагаемый mail-tester почтовый адрес и получили такой результат:



Важно: mail-tester позволяет бесплатно проверить письма три раза за одни сутки.


Сервис выявляет спам, проверяет содержание и форматирование письма, подлинность сервера, черные списки и нерабочие ссылки. По всем параметрам предлагает рекомендации по исправлению.

Для успешной доставки писем оценка должна быть минимум 8 баллов.

Локальный почтовый сервер

Локальный почтовый сервер в BILLmanager используется по умолчанию. Для отправки вызывается команда ’sendmail -t’, которой передается письмо, сформированное системой.


Для его настройки в личном кабинете услуги перейдите в Почта (1) → Почтовые домены (2), выберите почтовый домен (3) и нажмите на «Изменить» (4).

Внешний почтовый сервер

Существует несколько вариантов подключения внешнего почтового сервера. Лучший вариант — отправка почты с помощью SMTP-модуля.

Подключение SMTP-модуля

Модуль «Отправка электронной почты через SMTP» решает эту проблему применением SMTP-серверов.

Для настройки необходимо установить модуль от Веб студии Руби из Маркетплейса 1С-Битрикс.


2. В открывшейся странице модуля нажмите на кнопку «Установить» (1);


3. В поле введите адрес вашего сайта или портала (2) и нажмите на кнопку «Установить» (3).


Перейдите в Marketplace (1) → Установленные решения (2) и установите модуль (3-4).


В панели управления Битрикс у вас появится новый пункт. Перейдите в Настройки (1) → Настройки продукта (2) → Настройки модулей (3).


В открывшейся вкладке укажите параметры вашего SMTP-сервера, отметьте галочки для «Модуль активен», «Вести журнал», «Проверять формат адреса получателя» и «Сохранять письмо при ошибке».

Дополнительные SMTP-аккаунты можно добавить с помощью опции «Добавить дополнительный E-mail SMTP аккаунт». Укажите исходящий адрес и в новой вкладке сделайте настройки для этого адреса.

Важно! Для подключения модуля необходимо добавить строкуinclude_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/wsrubi.smtp/classes/general/wsrubismtp.php");

в файл /bitrix/php_interface/init.php или /local/php_interface/init.php.

Если такого файла нет, его необходимо создать.

Отправление писем через модули 1С-Битрикс

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

Рассылка


Для отправки письма перейдите в Сервисы (1) → Рассылки (2) → Выпуски (3). Создаем рассылку (4), в поле электронной почты получателя вставьте новый адрес из mail-tester. Отправка возможна только на один e-mail.


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


Результат отправки письма в mail-tester. Отправление писем блокируется.

Отправление через Email-маркетинг


Для отправки письма перейдите в Маркетинг (1) → Email-маркетинг (2) → Старт (3).


Создайте новую рассылку.


Выберите первый шаблон. В графе «Получатели тестовой отправки» введите адрес, предложенный mail-tester, и отправьте на него письмо.


Результат стал лучше, однако этой оценки недостаточно для качественной доставки писем.

Отправление писем с доменной почты

Используйте сторонние приложения для отправки электронной почты с использованием доменной почты. Адрес электронной почты с доменом вашего сайта наиболее привлекателен, повышает доверие и лояльность клиентов.

Поэтому рекомендуем использовать сервис Яндекс.Почта. Для создания почты на Яндекс следуйте нашей инструкции.


После настройки протестируйте доставку повторно. Какой результат получился:

Читайте также: