Блог

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

Проверить работу почты сайта под управлением Битрикс:
Административный раздел->Рабочий стол->Настройки->Инструменты->Командная 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) поменять на свои.
Нажать ВЫПОЛНИТЬ.
Битриксовская отправка письма - обёртка над функцией 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
Обращаем свое внимание на колонки 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. Если ошибка — исправить проблему с доступом продукта к папкам. Результатом должно быть удаление файлов и папок из кеша через модуль управления структурой.

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

1)Может почтовый сервер не поддерживает формат письма.
Убрать BBC(добиваемся чтоб оно работало, но попробовать отключить можно)
Убрать дублирование email в заголовке
Установить Конвертировать 8-битные заголовки


Если стоит NULL
API работает только с записями, у которых значение "N", попробуем исправить сам столбец таблицы.
Административный раздел->Рабочий стол->Настройки->Инструменты->SQL запрос пишем
  alter table b_event modify SUCCESS_EXEC char(1) not null default 'N';

Если стоит "0"
1) Неправильно настроен шаблон сообщения.
Посмотрите правильность зополнения полей. Мало ли.


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

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

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



Вам нужен сайт? С чего начать?

Проконсультируем, найдем оптимальное решение, подготовим индивидуальное предложение.