Bitrix отправка почты ошибка не работает

Не отправляются письма с сайта на Битрикс

В этой статье мы расскажем вам о том, где смотреть причины ошибки неотправленной почты в Битриксе. Рассмотрим три основных мест, откуда можно найти ошибку отправки писем.

Проверка таблицы очереди писем

Идем в административную панель Битрикса по пути: Настройки / Производительность / Таблицы. Ищем таблицу b_event и проваливаемся по ссылке.

Именно в эту таблицу попадают письма с сайта в очередь, а затем отправляются на хитах или на агентах.

Почему не отправляются письма с сайта?

На открывшейся странице можем отыскать сообщение, которое не отправилось. Проматываем в самый конец к колонке SUCCESS_EXEC – это колонка записывает состояние отправки письма.

Почему не отправляются письма с сайта?

Варианты статуса отправки (SUCCESS_EXEC):

Y – означает, что письмо было успешно отправлено

N – говорит о том, что событие еще не обработано и письмо не отправлено. В этом случае стоит полную проверку сайта и проверить настройки dbconn.php. Проверить корректность настройки почтовых шаблонов и их привязки к сайтам.

F – сообщение не было отправлено. Необходимо проверить логи сервера или хостинга.

0 – не активен или отсутствует почтовый шаблон (Настройки / Настройки продукта / Почтовые шаблоны)

Проверка системы

Проверка системы расположена на странице Настройки / Инструменты / Проверка системы. В проверке уже встроен инструмент, который проверяет возможность отправки письма с помощью стандартной PHP функции mail. Этаки быстрый проверяльщик работы почты.

Почему не отправляются письма с сайта?

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

Проверка логов сервера

Если ошибка ошибка идет глубже и у вас VM Bitrix, идем в консоль сервера по пути /home/bitrix/ и ищем логи с префиксом .msmtp_ (по умолчанию). Смотрим и ловим ошибки в этом файле. Логи лучше просматривать с помощью утилиты mc.

Сама конфигурация почтовых настроек расположена в файле /home/bitrix/.msmtrpc

Если письма в Битриксе отмечены как успешно отправленные, но письмо не пришло и в логах отсутствует какая-либо информация – следует обратить внимание на логи в /var/log/. Там отобразится ошибка, которая возвращается функцией mail.

Проверить возможность отправки также можно с помощью консольных команд (но в данном случае будет использоваться отправитель по умолчанию – default)

> php -a
> mail('test@example.com', "Test", "Test message");
> exit

Если произойдет ошибка при отправке, то сообщение будет у вас на экране.

Ошибки

Частая ошибка – это когда в письмах отправителем указан адрес отличимый от названия аккаунта (поле FROM). Поэтому задайте в настройках сайта нужный адрес или в почтовых шаблонах в поле «От кого». В этом случае, если требуется, чтобы человек мог ответить на другую почту, то можете указать электронную почту в качестве обратного адреса в почтовом шаблоне.

Другая ошибка – это отсутствие настроек для отправителя по умолчанию. Необходимо внести корректные настройки адреса отправителя (указать tsl, метод авторизации и т.п.)

Почему не отправляются письма с сайта?

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

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

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

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

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

$mail="[email protected]"; // ваша почта
$subject ="Test" ; // тема письма
$text= "Line 1nLine 2nLine 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’ или 0 — письмо не отправлено;
‘F’ — ошибка
Если найденные записи имеют значение ‘Y’ — это означает, что они отправлены и проблем быть не должно.
Но у нас всё плохо, значит обращаемся в тех. поддержку хостинга.

Если ‘N’ или 0- письма по какой-то причине не ушли.
Может помочь такое решение:
перейдите по пути: <вашсайт>/bitrix/php_interface/dbconn.php

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

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

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

Еще один способ — воспользоваться встроенными методами CMS Битрикс по диагностике.

  • Проверка системы — <вашсайт>/bitrix/admin/site_checker.php
  • Монитор качества — <вашсайт>/bitrix/admin/checklist.php

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

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

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

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

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

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

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

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

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

 

Пользователь 2595271

Заглянувший

Сообщений: 7
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 26.10.2018

Добрый день!
Прошу помочь решить проблему с отправкой почты.
Коробочная версия Битрикс24 Bitrix virtual appliance version 7.4.3
На странице «Почта» (/mail) у пользователей подключены свои почтовые ящики, которые располагаются на сервисе почта для домена в mail.ru .
Почта работала более года, но недавно она перестала отправлять письма с портала. Письма висят в папке «Отправленные», но если зайти в тот же ящик со страницы mail.ru, то там в «Отправленных» их нет.
Входящие письма приходят. И если отправить письмо с сайта mail.ru , тогда и на портале Битрикс24 они появятся в «Отправленных».
Выходит ошибка в том что письма при отправке с портала Битрикс24 не доходят до своего почтового сервера(mail.ru).
Написал в mail.ru , они попросили предоставить «Для выяснения причин нужен полный лог SMTP-сессии отправки письма на адрес Mail.ru.
Указанный лог должен содержать несколько попыток отправки писем на почтовые ящики нашего почтового сервиса, а также полный ответ нашего сервера (emx.mail.ru).»
1) Подскажите встречался ли кто с такой проблемой?
2) Где найти логи SMTP-сессии с ответом сервера emx.mail.ru ?

 

Пользователь 581523

Посетитель

Сообщений: 43
Баллов: 6
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 10.05.2016

Лог отправки почты должен быть в файле /home/bitrix/msmtp_default.log

 

Пользователь 2595271

Заглянувший

Сообщений: 7
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 26.10.2018

Нет, там логи только о почтовом ящике настроенном в виртуальной машине

Dec 25 03:36:07 host=smtp.mail.ru tls=on auth=on user=

bitrix@site.com

from=

bitrix@site.com

recipients=root smtpstatus=501 smtpmsg=’501 <root>: recipient address must contain a domain’ errormsg=’recipient address root not accepted by the server’ exitcode=EX_DATAERR

А мне нужны логи отправки писем каждого пользователя со своим почтовым ящиком, например от моего ящика логи

yerlan@site.com

или коллеги

sergey@site.com

 

Пользователь 2595271

Заглянувший

Сообщений: 7
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 26.10.2018

Помогите пожалуйста.
Я перечитал форумы и просмотрел в машине логи, но так и не нашел логов отправки почты пользователей.
В чем может быть причина или же хотя бы где искать проблему?

 

Пользователь 2595271

Заглянувший

Сообщений: 7
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 26.10.2018

Нашел инструкцию по отладке отправки письма

https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=37&LESSON_ID=9325

Создал test_email.sh в каталоге /usr/bin/

550 Message was not accepted — it contains invalid headers.  More specially, ‘From:’ header must match user you are sending mail from.  See

http://help.mail.ru/mail-help/mailer/popsmtp

for details.

Здесь говорится что отправитель фактический(указанный в настройках виртуальной машины) и указанный в письме отправитель  должны совпадать.
Как это исправить?

 

Пользователь 136059

Гуру

Сообщений: 5418
Баллов: 636
Авторитет:

22

Рейтинг пользователя:

0

Регистрация: 16.07.2012

#6

0

29.12.2020 11:20:57

Цитата
Ерлан написал:
Как это исправить?

Есть только одно гарантированное решение данной ситуации: настроить и использовать свой почтовый сервер.
Дело в том, что Битрикс пытается отправлять от дефолтного отправителя все письма, а письма формируются от тех почтовых ящиков что подключены в публичной части.

Голосуй за идеи по развитию API Bitrix:
https://idea.1c-bitrix.ru/26707/
https://idea.1c-bitrix.ru/26709/
https://idea.1c-bitrix.ru/the-local-extension-folder-js/

 

Пользователь 2595271

Заглянувший

Сообщений: 7
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 26.10.2018

#7

0

01.01.2021 12:29:48

На основе инструкции по отладке отправки письма (ссылка в коменте выше) сделал скрипт который отправляет письма от указанного в письме отправителя.
А именно:
 — В конфигурации  изменил настройки почты: /etc/php.d/bitrixenv.ini в опции sendmail_path = /usr/bin/send_email_for_mailru.sh
 — в скрипте send_email_for_mailru.sh проверяю в теле письма кто указан отправителем

Код
  from="$(grep '^From:'<<<$line)"
  if [ -z "$from" ]
  then
    echo "$from is empty"
  else
    sender="$(grep -E -o 'b[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+.[a-zA-Z0-9.-]+b' <<< $from)"
    account="${sender,,}"
  fi

 , и после вызываю msmtp с нужным акаунтом  /usr/bin/msmtp -a $account -t -i
 — аккаунты прописал в настройках /home/bitrix/.msmtprc

Отправка почты работает.
Минусом является только то, что нужно прописывать настройки для каждого ящика пользователя вручную в файле   /home/bitrix/.msmtprc

 

Пользователь 5103304

Заглянувший

Сообщений: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 15.03.2021

#8

0

15.03.2021 09:05:35

Цитата
Ерлан написал:
На основе инструкции по отладке отправки письма (ссылка в коменте выше) сделал скрипт который отправляет письма от указанного в письме отправителя.
А именно:
 — В конфигурации  изменил настройки почты: /etc/php.d/bitrixenv.ini в опции sendmail_path = /usr/bin/send_email_for_mailru.sh
 — в скрипте send_email_for_mailru.sh проверяю в теле письма кто указан отправителем  

Код
   from= "$(grep '^From:'<<<$line)" 
   if  [ -z  "$from"  ]
  then
     echo   "$from is empty" 
   else 
    sender= "$(grep -E -o 'b[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+.[a-zA-Z0-9.-]+b' <<< $from)" 
    account= "${sender,,}" 
  fi
 

  , и после вызываю msmtp с нужным акаунтом  /usr/bin/msmtp -a $account -t -i
 — аккаунты прописал в настройках /home/bitrix/.msmtprc

Отправка почты работает.
Минусом является только то, что нужно прописывать настройки для каждого ящика пользователя вручную в файле   /home/bitrix/.msmtprc

Тоже столкнулся с аналогичной проблемой отправки через mail.ru и не совсем понял вот этот пункт:

Цитата
и после вызываю msmtp с нужным акаунтом  /usr/bin/msmtp -a $account -t -i

В каком файле его прописать?

 

Пользователь 1016215

Заглянувший

Сообщений: 11
Баллов: 1
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 17.03.2017

Я тут в документации отрыл

https://manpages.debian.org/testing/msmtp/msmtp.1.en.html

set_from_header [(auto|on|off)]

When to set a From header: auto adds a From header if the mail does not have one (this is the default), on always sets a From header and overrides any existing one, and off never sets a From header.
If the mail server rejects the mail because its From header does not match the envelope from address (a common anti-spam measure), then you might want to set this option to on.
For compatibility with older versions, add_missing_from_header [(on|off)] is still supported and corresponds to the auto and off settings.

У меня все заработало

 

Пользователь 5186250

Заглянувший

Сообщений: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 12.04.2021

#10

0

12.04.2021 18:45:33

Цитата
Константин Нефедов написал:
Я тут в документации отрыл
https://manpages.debian.org/testing/msmtp/msmtp.1.en.html

set_from_header [(auto|on|off)]

When to set a From header: auto adds a From header if the mail does not have one (this is the default), on always sets a From header and overrides any existing one, and off never sets a From header.
If the mail server rejects the mail because its From header does not match the envelope from address (a common anti-spam measure), then you might want to set this option to on.
For compatibility with older versions, add_missing_from_header [(on|off)] is still supported and corresponds to the auto and off settings.

У меня все заработало

Простите, а где можно изменить данную настройку?

при помощи msmtp -P видны настройки (set_from_header = auto), но поменять не пойму где, в конфигах нет таких опций.

[img]data:image/png;base64,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[/img]

Прикрепленные файлы

tempsnip.png (23.28 КБ)

 

Пользователь 5603144

Заглянувший

Сообщений: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 27.09.2021

#11

0

27.09.2021 11:00:32

Цитата
Ерлан написал:
На основе инструкции по отладке отправки письма (ссылка в коменте выше) сделал скрипт который отправляет письма от указанного в письме отправителя.
А именно:
 — В конфигурации  изменил настройки почты: /etc/php.d/bitrixenv.ini в опции sendmail_path = /usr/bin/send_email_for_mailru.sh
 — в скрипте send_email_for_mailru.sh проверяю в теле письма кто указан отправителем  

Код
   from= "$(grep '^From:'<<<$line)" 
   if  [ -z  "$from"  ]
  then
     echo   "$from is empty" 
   else 
    sender= "$(grep -E -o 'b[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+.[a-zA-Z0-9.-]+b' <<< $from)" 
    account= "${sender,,}" 
  fi
 

  , и после вызываю msmtp с нужным акаунтом  /usr/bin/msmtp -a $account -t -i
 — аккаунты прописал в настройках /home/bitrix/.msmtprc

Отправка почты работает.
Минусом является только то, что нужно прописывать настройки для каждого ящика пользователя вручную в файле   /home/bitrix/.msmtprc

Подниму тему, пытаюсь подружить bitrix с яндексом, в скрипте почемуто не видно аргументовю
echo $from  выводит постое значение,
отправляю так php -r «mail(‘

adres@mail.ru

‘,’Tema’,’Pismo’,’From: юзер@мойдомен r n’);»

 

Пользователь 6104178

Заглянувший

Сообщений: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 16.03.2022

#12

0

16.03.2022 12:26:52

Цитата
написал:
На основе инструкции по отладке отправки письма (ссылка в коменте выше) сделал скрипт который отправляет письма от указанного в письме отправителя.
А именно:
 — В конфигурации  изменил настройки почты: /etc/php.d/bitrixenv.ini в опции sendmail_path = /usr/bin/send_email_for_mailru.sh
 — в скрипте send_email_for_mailru.sh проверяю в теле письма кто указан отправителем  

Код
   from= "$(grep '^From:'<<<$line)" 
   if  [ -z  "$from"  ]
  then
     echo   "$from is empty" 
   else 
    sender= "$(grep -E -o 'b[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+.[a-zA-Z0-9.-]+b' <<< $from)" 
    account= "${sender,,}" 
  fi
 

  , и после вызываю msmtp с нужным акаунтом  /usr/bin/msmtp -a $account -t -i
 — аккаунты прописал в настройках /home/bitrix/.msmtprc

Отправка почты работает.
Минусом является только то, что нужно прописывать настройки для каждого ящика пользователя вручную в файле   /home/bitrix/.msmtprc

Добрый день!  Инструкция еще актуальная?
Данную строку /usr/bin/msmtp -a $account -t -i  где прописывать

 

Пользователь 78822

Посетитель

Сообщений: 32
Баллов: 5
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 16.12.2010

#13

0

31.03.2022 13:41:59

По всей видимости, причина вашей ситуации описана в этой статье:

https://helpdesk.bitrix24.ru/open/13118632/

А в этой статье описан способ решения вашего вопроса:

https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=23612

11:37

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

ПРОВЕРИТЬ ОТПРАВЛЯЮТСЯ ЛИ ПИСЬМА

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



$mail="my@mail.ru"; // ваша почта $subject ="Test" ; // тема письма $text= "Line 1nLine 2nLine 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’ или 0 — письмо не отправлено;
‘F’ — ошибка
Если найденные записи имеют значение ‘Y’ — это означает, что они отправлены и проблем быть не должно.
Но у нас всё плохо, значит обращаемся в тех. поддержку хостинга.

Если ‘N’ или 0- письма по какой-то причине не ушли.
Может помочь такое решение:
перейдите по пути: <вашсайт>/bitrix/php_interface/dbconn.php

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

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

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

Еще один способ — воспользоваться встроенными методами CMS Битрикс по диагностике.

  • Проверка системы — <вашсайт>/bitrix/admin/site_checker.php
  • Монитор качества — <вашсайт>/bitrix/admin/checklist.php

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

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

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

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

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

 НЕ ПРИХОДЯТ НА ПОЧТУ УВЕДОМЛЕНИЯ О ЗАПОЛНЕНИИ ВЕБ-ФОРМ

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

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

Без обратной связи сайт словно паралитик: все видит, а сказать ничего не может. Не поступают данные с веб — форм, корпоративные ящики не работают совсем или настраиваются с удивительными ухищрениями. Деньги заплачены, а про-стей-шая, э-ле-мен-тар-ней-шая, важ-ней-шая рабочая задача не решена! Что делать?

 
Проверяем настройки почтового события веб-формы и связанные шаблоны

Давайте перейдем по пути Панель управления -> Настройки -> Настройки продукта -> Почтовые события и выберем событие.

1. На первой вкладке галочки кодов языка включены?

2. На вкладке «Шаблоны» галочка имени сайта включена?

3. Почтовый шаблон активен?

4. Поле «От кого» заполнено верно (по умолчанию #DEFAULT_EMAIL_FROM#) ?

5. Поле «Кому» заполнено верно (по умолчанию #EMAIL#) ?

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

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

select * from b_event where event_name like ‘%form%’ order by date_insert desc

Найдя событие выполнения формы, просмотрите поле SUCCESS_EXEC. Если видите «Y», то письмо из продукта ушло, и вам следует отправить запрос в техподдержку хостинга. Если видите «N», то перейдите в файл

/bitrix/php_interface/dbconn.php

и проверьте, определены ли 2 переменные: BX_CRONTAB и BX_CRONTAB_SUPPORT. Если да, то отмените определение.

Повторите SQL-запрос и снова просмотрите поле SUCCESS_EXEC. Если снова видите «N», очистите кэш в папке  /bitrix/managed_cache/ через модуль управления структурой. Ни в коем случае ни через FTP! Если модуль выдаст ошибку, исправьте права доступа к папкам.

Если же значение «F», то функция mail() вернула значение False при отправке. Почему так бывает:

1. Не настроена функция mail() на хостинге. Обратитесь в техподдержку хостера.

2. Почтовый сервер не поддерживает формат письма. Попробуйте изменять настройки отправки, убирать поле ВСС, убирать галочку «Дублировать email адрес в заголовке», ставить «Конвертировать 8-битные заголовки». Если не поможет, запросите у администратора логи почтового сервера.

Наконец, если в поле «0», вернитесь к началу, настройкам почтовых событий, и проверьте заново.

 
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!

Назад в раздел

При проблеме отправки почты в 1с bitrix диагностируем проблему следующим образом

  1. проверяем правильность почтового ящика в главном модуле и существует ли ящик вообще, при отсутствии создаем
  2. проверяем активность почтового шаблона
  3. выполняем SQL запрос к базе данных на наличие сгенерированных сообщений (в данном случае хотим найти событие добавление в нового сообщения в гостевую) в Настройки-Инструменты-SQL-запрос select * from b_event where event_name like ‘ADD_GUESTBOOK_MESSAGE’ order by date_insert desc
  4. В полученном ответе обращаем внимание на SUCCESS_EXEC:стоит Y — письмо из продукта ушло
    стоит N — заходим в файл /bitrix/php_interface/dbconn.php и проверьте не определены ли у Вас константы
    BX_CRONTAB и BX_CRONTAB_SUPPORT, если да — убрать их определение вообще из этого файла. Тестируем
  5. Если после этого SUCCESS_EXEC также имеет значение ‘N’, то перейдите в  <вашсайт>/bitrix/managed_cache/ . Удалите содержимое через модуль управления структурой( не в коем случае не используйте FTP). Если вылезет ошибка, то не хватает доступа. Измените доступ к папкам и повторите снова.
  6. Если все равно не работает, проверяем что почта вообще работает. Для проверки достаточно создать файл со следующим php кодом:
    <?
    $mail="my@mail.ru"; // ваша почта
    $subject ="Test" ; // тема письма
    $text= "Line 1nLine 2nLine 3"; // текст письма
    if( mail($mail, $subject, $text) )
    { echo 'Успешно отправлено!'; }
    else{ echo 'Отправка не удалась!'; }
    ?>

    Если же и в данном случае не происходит отправки то вероятнее всего есть ограничения на хостинге (на моей памяти было несколько случаев когда у клиентов был запрет отправки почты из-за предыдущего взлома сайта и использования хостинга для рассылки спама)


Битрикс не отправляется почта или попадает в спам

Заказать сайт

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

Тестируем отправку писем

Отправка тестового письма из консоли

echo "Test text" | mail -s "Test title" test@test.ru

Проверяем работу функции mail из PHP консоли Битрикс

if( mail("test@test.ru", "Subject", "Text") ){
	echo 'Успешно отправлено!'; }
else{
	echo 'Отправка не удалась!';
}

Проверяем работу сокетов

$fp = fsockopen("ssl://smtp.mail.ru", 465, $errno, $errstr, 30);
if (!$fp) 
	echo "Error: $errstr ($errno)n";
else
	echo "Connected";
fclose ($fp)

Проверяем настройки Битрикс

Идем в Настройки > Настройки продукта > Почтовые и СМС события > Почтовые шаблоны и просматриваем шаблоны. Убеждаемся, что в поле От кого стоит #DEFAULT_EMAIL_FROM#

Идем в Настройки > Настройки продукта > Настройки модулей > Главный модуль > Почта и СМС в поле Email администратора сайта (отправитель по умолчанию) вписываем правильное значение почта отправителя

На всякий случай почту можно указать еще в поле E-Mail отдела продаж: по пути Настройки > Настройки продукта > Настройки модулей > Интернет-магазин > Настройки

Email должен совпадать во всех перечисленных случаях, плюс в настройках msmtp должен быть указан именно он

msmtp config для простой отправки через mail.ru

account default
logfile /home/bitrix/.msmtp.log
host mail.bitrixsoft.com
port 25
from user@email.com
auth off

msmtp config для простой отправки через smtp mail.ru

account default
logfile /home/bitrix/msmtp_default.log
host smtp.mail.ru
port 587
from no-reply@default.ru
keepbcc off
auth on
user no-reply@default.ru
password default
tls on
tls_starttls on
tls_certcheck off

msmtp config для простой отправки через smtp yandex.ru

account default
logfile /var/log/msmtp.log
host smtp.yandex.ru
port 587
from usr@yandex.ru
keepbcc on
auth on
user usr@yandex.ru
password PAss
tls on
tls_starttls on

msmtp config для простой отправки через smtp gmail.com

account default
tls on
tls_certcheck off
auth on
host smtp.gmail.com
port 587
user YOUR_EMAIL
from YOUR_EMAIL
password YOUR_PASSWORD

msmtp config для простой отправки через smtp timeweb.ru

# smtp account configuration for default
account default
logfile /home/bitrix/msmtp_default.log
host smtp.timeweb.ru
port 465
from YOUR_EMAIL
aliases /etc/aliases
keepbcc off
auth on
user YOUR_EMAIL
password YOUR_PASSWORD

tls on
tls_starttls off
tls_certcheck off

Получаем список писем

select * from b_event
where event_name like 'SALE_NEW_ORDER'
order by date_insert desc

Значения статусов отправки писем в колонке SUCCESS_EXEC

‘Y’ — означает успешная отправка;
‘N’ или 0 — письмо не отправлено;
‘F’ — ошибка

Скрипт отправки почты через phpMailer

Устанавливаем composer

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Устанавливаем phpMailer

composer require phpmailer/phpmailer

Если команда composer не найдена, то пытаемся установиться его глобально

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Добавляем в init.php

require '/var/www/YOUR_SITE/vendor/autoload.php';

use BitrixMainApplication;
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerSMTP;
use PHPMailerPHPMailerException;

//Перехват генерации почтового события с возможностью его отмены
AddEventHandler("main", "OnBeforeEventAdd", array("OnBeforeEventAddClass", "OnBeforeEventAddHandler"));
class OnBeforeEventAddClass
{
    function OnBeforeEventAddHandler(&$event, &$lid, &$arFields, &$message_id, &$files)
    {
        $connection = BitrixMainApplication::getConnection('default');//Получаем соединение с БД

        //Получаем шаблон письма
        $recordset = $connection->query("select SUBJECT, MESSAGE, MESSAGE_PHP from b_event_message where ACTIVE = 'Y' AND EVENT_NAME = '".$event."'")->fetchAll();
        $fields = $arFields;

        AddMessage2Log($arFields, "arFields");

        if(isset($recordset[0]['MESSAGE'])){//Проверяем есть ли шаблон
            $mask = $recordset[0]['MESSAGE'];
            $subject = $recordset[0]['SUBJECT'];

            foreach ($fields as $key => $value){
                if(!is_array($value) && strpos($key, '~') === false){//Исключаем из замены массивы и символы ~
                    //Заменяем все возможные паттерны
                    $mask = preg_replace('~#'.$key.'#~', $value, $mask);
                    $subject = preg_replace('~#'.$key.'#~', $value, $subject);
                }
            }

            $mask = preg_replace('~#SITE_NAME#~', COption::GetOptionString("main", "site_name", $GLOBALS["SERVER_NAME"]), $mask);
            $mask = preg_replace('~#SERVER_NAME#~', COption::GetOptionString("main", "server_name", $GLOBALS["SERVER_NAME"]), $mask);
            $mask = preg_replace('~#DEFAULT_EMAIL_FROM#~', COption::GetOptionString("main", "email_from", "admin@".$GLOBALS["SERVER_NAME"]), $mask);

            $subject = preg_replace('~#SITE_NAME#~', COption::GetOptionString("main", "server_name", $GLOBALS["SERVER_NAME"]), $subject);
            $subject = preg_replace('~#SERVER_NAME#~', COption::GetOptionString("main", "server_name", $GLOBALS["SERVER_NAME"]), $subject);


            if($mask) {//Ести тело сформировано, то запускаем отправку
                if(isset($fields['RS_USER_EMAIL'])){
                    if (filter_var($fields['RS_USER_EMAIL'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['RS_USER_EMAIL'];
                    }
                }

                if(isset($fields['EMAIL'])){
                    if (filter_var($fields['EMAIL'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['EMAIL'];
                    }
                }

                if(isset($fields['EMAIL_RAW'])){
                    if (filter_var($fields['EMAIL_RAW'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['EMAIL_RAW'];
                    }
                }

                if(isset($fields['EMAIL_BUYER'])){
                    if (filter_var($fields['EMAIL_BUYER'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['EMAIL_BUYER'];
                    }
                }

                if(isset($fields['EMAIL_TO'])){
                    if (filter_var($fields['EMAIL_TO'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['EMAIL_TO'];
                    }
                }


                if(!$email){
                    $email = 'default@email.ru';
                }

                if($email && filter_var($email, FILTER_VALIDATE_EMAIL)){
                    $cl = new OnBeforeEventAddClass;
                    if($cl->custom_mail($email, $subject, $mask,'','')){//Отправляем письмо
                        //AddMessage2Log($event, "Сообщение было отправлено");
                    }else{
                        //AddMessage2Log($event, "Ошибка. Сообщение отправлено не было");
                    }
                }else{
                    //AddMessage2Log($event, "Ошибка. Почта не найдена. Почта:");
                }

                return false;

            }else{
                //AddMessage2Log($event, "Ошибка. Нет тела письма");
            }
        }else{
            //AddMessage2Log($event, "Ошибка. Не найден шаблон письма");
        }

    }

    public function custom_mail($to, $subject, $message, $additionalHeaders = '', $additional_parameters)
    {
        // Instantiation and passing `true` enables exceptions
        $mail = new PHPMailer(true);

        $mail->IsSMTP(true); // enable SMTP
        $mail->SMTPDebug = 3;  // debugging: 1 = errors and messages, 2 = messages only
        $mail->SMTPAuth = true;  // authentication enabled
        $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
        $mail->Host = 'smtp.gmail.com';
        $mail->Port = 465;               // set the SMTP port for the GMAIL server

        $mail->Username = 'email'; // SMTP username
        $mail->Password = 'password'; // SMTP password

        $mail->CharSet = 'UTF-8';

        $mail->addAddress($to);
        $mail->setFrom('default@email.ru');

        //Set the subject line
        $mail->Subject = $subject;

        //Read an HTML message body from an external file, convert referenced images to embedded,
        //convert HTML into a basic plain-text alternative body
        $mail->msgHTML($message);

        //Replace the plain text body with one created manually
        $mail->AltBody = 'This is a plain-text message body';

        $d_message='';
        //preg_match('/From: (.+)n/i', $additionalHeaders, $matches);
        //list(, $from) = $matches;
        $from = 'admin@YOUR_SITE';
        $d_message.='$from - '.$from.' +++ '; $d_message.='$to - '.$to.' +++ ';
        $d_message.='$subject - '.$subject.' +++ ';
        $d_message.='$message - '.$message.' +++ ';
        $mail->setFrom($from);
        $mail->addAddress($to, ''); // Add a recipient

        //$mail->addReplyTo($from, '');
        //$mail->AddBCC($from);
        //$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
        //$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name

        $mail->Subject = $subject;

        if($message != strip_tags($message)) {
            $mail->isHTML(true);
        }

        $mail->Body = $message;
        // $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

        if(!$mail->send()) {
            AddMessage2Log($mail->ErrorInfo, "Mailer Error");
            return false;
        } else {
            return true;
        }
    }
}


//Перехват письма непосредственно перед отправкой
AddEventHandler('main', 'OnBeforeEventSend', Array("OnBeforeEventSendClass", "my_OnBeforeEventSend"));
class OnBeforeEventSendClass
{
    function my_OnBeforeEventSend($arFields, $arTemplate)
    {

        //получим сообщение

    }
}

Для отправки писем с помощью phpMailer через smtp.mail.ru конфиг должен быть следующего вида:

$mail = new PHPMailerPHPMailerPHPMailer(true);

$mail->IsSMTP(true); // enable SMTP
$mail->SMTPDebug = 1;  // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true;  // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Host = 'ssl://smtp.mail.ru';
$mail->Port = 465;               // set the SMTP port for the GMAIL server

$mail->Username = 'USER_NAME'; // SMTP username
$mail->Password = 'USER_PASSWORD'; // SMTP password

Отладка через AddMessage2Log

В файле dbconn.php добавьте строчку define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");

cannot connect to localhost, port 25: Connection refused

После установки чистого битрикс окружения достаточно часто вижу эту ошибку. Чтобы исправить — используйте postfix

yum install postfix
service postfix start
chkconfig postfix on

the server sent an empty reply в логе msmtp

Добавьте в конфиг

tls_starttls off

Борьба с ошибками

Если вы пытаетесь отправить почту через smtp компании Google и получаете ошибку вида SMTP connect() failed, то зайдите в аккаунт гугл с которого отправляете почту. Откройте настройки, перейдите во вкладку Безопасность, найдите пункт «Ненадежные приложения, у которых есть доступ к аккаунту», перейдите в него и разрешите доступ небезопасным приложениям (ссылка)

Боремся с ошибкой Mail command not found

yum install sendmail
yum -y install mailx
service sendmail start

Перевод агентов на крон

Правим файл /bitrix/php_interface/dbconn.php

Иногда требуется закомментировать строки подключения поддержки крона

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

Перейдите на страницу Настройки > Инструменты > Командная PHP-строка и исполните следующий код:

COption::SetOptionString("main", "agents_use_crontab", "Y");
echo COption::GetOptionString("main", "agents_use_crontab", "N");

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

crontab -u bitrix -e или crontab -e

Добавим запись:

*/1 * * * *  php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php >/dev/null 2>&1

Перезагружаем cron

systemctl restart crond.service

Настройки cron хорошо описаны в документации

Более подробно можно изучить вопрос в официально документации:

  • Настройка почты на VMBitrix
  • Дополнительные настройки и отладка msmtp

Теги:

1С Битриксphp

Понравилась статья? Поделить с друзьями:
  • Bitrix smart filter 404 ошибка
  • Bitrix pull websocket connection error
  • Bitrix parse error syntax error unexpected
  • Bitrix orm add error
  • Bitrix network error