Форма для связи

Ваше имя *
Ваш email *
Описание проекта *
Защита от автоматического заполнения ��������... Введите символы с картинки*

* - обязательные поля

Не работает почта Битрикс

Не работает почта Битрикс

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

Битрикс посылает почтовые шаблоны функциями CEvent::Send() и CEvent::SendImmediate().

Письмо отправляется, если Битрикс нашел активный почтовый шаблон, подходящий под это событие и соответствующий текущему сайту.

Письма, отправленные через CEvent::Send(), попадают в таблицу b_event.

Чтобы проверить таблицу, существует 2 способа.

Способ 1

Перейдите на страницу ваш_домен/bitrix/admin/perfmon_tables.php и в поле "Фильтр по имени таблицы" введите b_event, далее перейдите по точному совпадению таблицы.

Фильтр по имени таблицы
Фильтр по имени таблицы

Способ 2

Письма, попавшие в b_event, посылаются на агенте (хиты) или на cron (по расписанию) и отправляются не сразу.

Письма, посылаемые через SendImmediate, не попадают в b_event, а отправляются сразу.

Send и SendImmediate - обертки на функцию Битрикса bxmail, которая использует либо стандартную php-функцию mail, либо custom_mail, если она определена.

В Административном разделе сайта перейдите на страницу по адресу Настройки -> Инструменты -> Командная PHP-строка и скопируйте туда данный код:

if( mail("mail_to@mail.com", "letter test", "my letter text",
"From: mail_from@mail.com
Reply-To: mail_from@mail.com
Content-Type: text/plain; charset=windows-1251
Content-Transfer-Encoding: 8bit"
) ){
    echo 'Успешно отправлено!';
}else{
    echo 'Отправка не удалась!';
}

Поля "От кого" (mail_from@mail.com), "Кому" (mail_to@mail.com) поменять на свои.

После этого нажмите на кнопку "ВЫПОЛНИТЬ".

Командная PHP-строка
Командная PHP-строка

Битриксовская отправка письма - обёртка над функцией mail().

Если в результате выполнения команды появилось сообщение "Отправка не удалась!", значит функция mail не работает. Свяжитесь с администрацией хостинга.

Далее нужно проверить срабатывает ли штатные события.

На D7:

use Bitrix\Main\Mail\Event;
$arFields = array(
    "EVENT_NAME" => "ваше событие",
    "LID" => "код вашего сайта",
    "C_FIELDS" => array(
    "EMAIL"    => "mail_to@mail.com",
    "BCC"    => "mail_to@mail.com",
    "DEFAULT_EMAIL_FROM"    => "mail_from@mail.com",
    ),
    "DUPLICATE"=>"Y",
);
$result=Event::send($arFields);
if($result->GetId()){
    echo 'Успешно отправлено!';
}else{
    echo 'Отправка не удалась!';
}
Проверьте, чтобы поля "DEFAULT_EMAIL_FROM", "EMAIL", "EVENT_NAME" были заполнены верно.

Если не поддерживается D7:

$arEventFields = array(
"EMAIL_TO"            => "mail_to@mail.com",
"BCC"                 => "mail_to@mail.com",
"DEFAULT_EMAIL_FROM"    => "mail_from@mail.com",
"ORDER_LIST"    => "состав заказа",
);
$result=CEvent::Send("ваше событие", "код вашего сайта", $arEventFields,'Y');
if(intval($result)){
    echo 'Успешно отправлено!';
}else{
    echo 'Отправка не удалась!';
}

Далее перейдите на страницу по адресу Настройки -> Инструменты -> SQL запрос и введите:

select * from b_event order by id desc

SQL запрос
SQL запрос

Обратите внимание на колонки SUCCESS_EXEC и DUPLICATE. Иногда нужно подождать некоторое время (недолго), пока отработает запись в лог. Первый при установленном значении 'Y' говорит нам, что отправка произошла успешно. Второй, что письмо продублировано на скрытую копию ВСС (например администратору о совершенном заказе).

Что же делать, если значения 'N', а отправка простого mail() выдала 'Успешно отправлено!'?

Параметр SUCCESS_EXEC сообщает:

  • Y - все письма по всем почтовым шаблонам были успешно отправлены;
  • F - все письма по всем почтовым шаблонам не смогли быть отправлены;
  • P - часть писем отправлена успешно, часть писем - безуспешно;
  • 0 - почтовые шаблоны не были найдены;
  • N - почтовое событие ещё не обрабатывалось функцией CEvent::CheckEvents.

Если там стоит 'N'

  1. Возможно в настройках продукта включена отправка сообщений по крону. Зайдите в файл /bitrix/php_interface/dbconn.php и проверьте, не определены ли у вас константы BX_CRONTAB и BX_CRONTAB_SUPPORT, если да - убрать их.(ОСТОРОЖНО! Будьте готовы вернуть всё в исходное состояние)
  2. Если после этого SUCCESS_EXEC также N, то необходимо перейти в папку /bitrix/managed_cache/ и попытаться удалить содержимое обязательно через модуль управления структурой, а не через FTP. Если возникла ошибка, исправьте проблему с доступом продукта к папкам. Результатом должно быть удаление файлов и папок из кеша через модуль управления структурой.
  3. Если после выполения команды CEvent::CheckEvents(); в командной строке несколько писем с N меняют статус отправки на другой, нужно добавлять и проверять cron-задачу или переключить отправку писем на хиты.
  4. Поставьте cron-задачу (проверьте, есть ли она вообще) или перенесите отправку на хиты.
  5. Код в init.php, некорректно работающий на cron. Проверьте там редиректы и пустые данные в переменной $_SERVER.

Если там стоит 'F' (функция mail() по какой-то причине вернула False)

  1. Может почтовый сервер не поддерживает формат письма. Тогда необходимо:
    • Убрать BBC (лучше добиться, чтоб оно работало, но попробовать отключить можно)
    • Убрать дублирование email в заголовке
    • Установить "Конвертировать 8-битные заголовки"
  2. Может быть это проблемы на стороне почтовой утилиты на сервере. Если почта была настроена, но вдруг перестала отправляться, ошибку нужно искать в логах почтовой утилиты. В стандартном виртуальном окружении Битрикса он находится по адресу /home/bitrix/msmtp_default.log. Проверьте также права на /home/bitrix/.msmtprc. Возможно прав для пользователя bitrix (если стантартное виртуальное окружение) не достаточно на прочтение. Поменяйте владельца на bitrix:bitrix.
  3. Если писем отправляется очень много. В почтовых серверах может стоять ограничение на количество писем в минуту, час или день. Если лимит превышен, письма могут быть не доставлены. Ошибки можно увидеть в логах или узнать у техподдержки почтового сервера. Лечится увеличением пропускного лимита или уменьшением количества отправляемых писем. Например, можно убрать лишних получателей из копий, отключить лишние почтовые шаблоны.
  4. В почтовом шаблоне письма есть заглушка #NAME#, а ключа с таким именем нет в массиве полей в b_event:
    • e-mail отправителя или получателя имеет неправильный формат;
    • заглушека #NAME# не может подставиться;
    • какой-то из необходимых заголовков не задан в почтовом шаблоне в административной части сайта;
    • в почтовом клиенте неверно настроено соответствие заголовков;
    • отправитель письма не соответствует тому, что ожидает почтовый сервер.
  5. Битрикс заполняет заглушку #BCC# в полях Кому и Копии только в письмах, отправляемые модулем Интернет-магазин (например, создание заказа). Если вы добавите #BCC# в Кому или Копию в шаблон регистрации пользователя или в свой кастомный, или любой другой шаблон без приставки SALE — письмо не отправится и будет иметь статус отправки F.
  6. Обработчики событий отправки писем сработали неверно.
  7. Обратите внимание на функцию custom_mail. Если она определена, значит заменяет стандартную mail. Даже если она отработала корректно (отослались письма), статус может быть F или 0. Проверьте тариф используемого SMTP, проверьте логины, пароли, а также адрес отправителя. Обычно используют класс PhpMailer. Включите дебаг и посмотрите ошибки.
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
$from = 'адрес отправителя';
$mail = new PHPMailer(true);
$mail->SMTPDebug = 1;                                       // включаем дебаг
$mail->isSMTP();                                            // включаем SMTP
$mail->Host       = '';  //  SMTP сервер
$mail->SMTPAuth   = true;                                   // включаем авторизацию
$mail->Username   = $from;                     // SMTP логин
$mail->Password   = '';                               // SMTP пароль
$mail->SMTPSecure = 'ssl';                                  // включаем шифрование
$mail->Port       = 465;                                    // используемый TCP порт

//Recipients
$mail->setFrom($from, 'Арт-Деко'); //от кого
$mail->addAddress(''); //кому
// Content
$mail->CharSet = "UTF-8"; //кодировка
$mail->isHTML(true);                                  // формат письма HTML
$mail->Subject = '=test=';
$mail->Body = '=test body=';
$mail->send();
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/mail_log.log',serialize($mail->ErrorInfo).PHP_EOL,FILE_APPEND);

Если стоит NULL

API работает только с записями, у которых значение "N", поэтому попробуем исправить сам столбец таблицы.

Для этого перейдите на Настройки -> Инструменты -> SQL запрос и введите:

alter table b_event modify SUCCESS_EXEC char(1) not null default 'N';

SQL запрос
SQL запрос

Если стоит "0"

  1. Неправильно настроен шаблон сообщения. Посмотрите правильность зополнения полей. Мало ли.
  2. В почтовом шаблоне снята галочка активности или нет привязки к нужному сайту.
  3. Обработчики событий отправки писем сработали неверно.

Если ничего не помогло

  • Просите у хостера логи почтового сервера.
  • По возможности проверить размер таблицы b_event (через phpmyadmin к примеру).
  • Если дешевый тариф, то посмотреть использование памяти сервером.
  • Возможно у хостера стоит ограничение на вес письма.

Проверка домена в настройках сайта

Для отправки писем важно, чтобы домен, с которого отправляются письма, был прописан в настройках сайта.

В Административном разделе перейдите на Настройки -> Настройки продукта -> Сайты -> Список сайтов и нажмите на id сайта, с которого идет отправка письма:

Список сайтов
Список сайтов

На странице настроек сайта проверьте поле "Доменное имя". Если там не указан домен, с которого отправляются письма, то введите его:

Редактирование сайта
Редактирование сайта

Если письмо отправилось, но вы его не видите не забудьте перепроверить спам фильтр на почте, на которую отправляли.

Давайте обсудим Ваш проект!

Если вы готовы обсудить задачи по теме -
Не работает почта Битрикс, пожалуйста, свяжитесь с нами

связаться

Популярное
1

Бюджетные сайты на платформе Битрикс24

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

1

CRM ДЛЯ ПРОИЗВОДСТВЕННОЙ КОМПАНИИ

Для производственной компании мы предлагаем комплексное внедрение CRM системы Битрикс24 в котором вы сможете полностью и открыто для клиента вести работы производства заказа.

36

Битрикс24 КЭДО + Госключ: быстро и выгодно

Теперь в Битрикс24 есть кадровый электронный документооборот. Подписывайте договоры и приказы с сотрудниками в один клик, используя Госключ.

41

Скидки до 25% на лицензии «1С-Битрикс: Управление сайтом»

С 1 по 29 декабря приобретите лицензию «1С-Битрикс: Управление сайтом» по сниженной цене и в течение 2024 года будьте уверены в надежности и скорости вашего интернет-магазина или сайта.

69

Основные шаги для разработки бизнес процесса на 1С-Битрикс24

Определите цели и задачи бизнес-процесса. Четко определите, что вы хотите достичь с помощью этого процесса и какие задачи нужно выполнить.

Рассчитай! Стоимость своего проекта в калькуляторе типовых проектов.
Мы используем cookie. Они помогают нам понять, как вы взаимодействуете с сайтом. При посещении страниц сайта вы даете согласие на использование и хранение файлов cookie на вашем устройстве. Подробнее