Меню

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

 

Пользователь 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

Приветствую читателей 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#».

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

В сегодняшней статье хочу рассказать об основных проблемах с почтой в 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#».

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

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

Идем в административную панель Битрикса по пути: Настройки / Производительность / Таблицы. Ищем таблицу 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, метод авторизации и т.п.)

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

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

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

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

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

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 'Отправка не удалась!'; }
    ?>

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

  1. Главная
  2. Сниппеты Битрикс d7

Если почта не уходит с сайта

Модуль расширенного управления меню для битрикс

Март 28, 2019

Теги:
Решение проблем

Если почта не уходит с сайта на битрикс, можно выполнить следующие рекомендации.

Чтобы проверить, создаются и выполняются ли стандартные события, можно зайти в административной части Настройки > Инструменты > SQL запрос и выполнить следующую команду.

Поле SUCCESS_EXEC говорит о том, было письмо передано серверу для отправки, это по сути то, что возвращает стандартная функция php mail, значение «Y» означает «отправлено», «N» — не отправлено, «0» — что по каким-то причинам отправка не была передана функции mail (это может быть также из-за отсутствия почтовых шаблонов для этого события).


SELECT FROM b_event ORDER BY ID DESC

Но если в поле SUCCESS_EXEC стоит «Y», а почта все равно не отправляется, можно проверить, отправляется ли почта средствами php (имейте в виду, что на большинстве хостингов то, что находится после собаки в поле From, должно совпадать с доменом вашего сайта):


$to 'my@mysite.ru';
$subject 'Тестовое письмо';
$message 'Содержание письма';
$headers "From: noreply@mysite.rurn";

$headers .= "Reply-To: noreply@mysite.rurn";
$headers .= "MIME-Version: 1.0rn";
$headers .= "Content-Type: text/html; charset=utf-8rn";

if(

mail($to$subject$message$headers))
    echo 
"<h6>Отправлено!</h6>";
else
    echo 
"<h6>Не отправлено!</h6>";

Рассмотрим основные проблемы, по которым почта может не уходить:

  • Неверно указан адрес почты по умолчанию в настройках главного модуля, либо в настройках сайта (если работают несколько сайтов на одном экземпляре битрикс)
  • Неверно указан тот же адрес, но уже в настройках хостинга/сервера
  • Наличие функции custom_mail (о ней подробнее дальше)
  • Наличие обработчиков при добавлении почтовых событий, например, «OnBeforeMailSend», «OnBeforePhpMail»
  • Неправильная настройка cron, если включено выполнение агентов на cron (в таком случае можно проверить, не установлены ли константы BX_CRONTAB и BX_CRONTAB_SUPPORT в /bitrix/php_interface/dbconn.php и если да, установить обе в false)
  • Наличие константы ONLY_EMAIL, которая позволяет ограничить отправку почты до одного адреса
  • Письма могут попадать в спам по причине неправильной настройки сервера для отправки почты или даже по причине некорректной верстки html писем

Также почта может уходить, но не приходить в почтовый ящик на некоторых серверах, например, mail.ru (на gmail обычно в таких случаях все приходит), часто с решением этой проблемы помогает установка в настройках главного модуля в поле «Дополнительный параметр для передачи функции mail» следующего значения:


-fваш_почтовый_ящик_по_умолчанию

С диагностикой отправки почты может помочь функция custom_mail, определите ее в «/bitrix/php_interface/dbconn.php», и данные о каждом отправленном письме будут логироваться в папку «/test/»:


function custom_mail($to$subject$message$additional_headers=''$additional_parameters='')

{
    
clearstatcache(); $handle fopen($_SERVER["DOCUMENT_ROOT"]."/test/".date('Y-m-d-H-i-s').".txt""w"); $text "To:n-----------------------------n".$to."n-----------------------------n";
    
$text .= "Subject:n-----------------------------n".$subject."n-----------------------------n";
    
$text .= "Headers:n-----------------------------n".$additional_headers."n-----------------------------n";
    
$text .= "Message:n-----------------------------n".$message."n-----------------------------n";
    
$text .= "Params:n-----------------------------n".$additional_parameters."n-----------------------------n";

         if (

$additional_parameters!='')
        
$return = @mail($to$subject$message$additional_headers$additional_parameters);
    else
        
$return = @mail($to$subject$message$additional_headers); $text .= "mail function return:n-----------------------------n".var_export($return,true)."n-----------------------------n"; fwrite($handle$text);
    
fclose($handle);    

    return 

$return;
}

Также можно логировать все, что отправляется стандартной функцией mail, для этого нужно в файле .htaccess установить следующие строки:


php_value mail.add_x_header 1

php_value mail
.log /путь/к/папке/mail.log

См. также:

  • Отправка почты средствами битрикс
  • События почтовой системы Битрикс
  • Рассылка собственными силами и средствами битрикса, или как не попадать в SPAM
  • Услуга настройка серверов под E-mail рассылки
  • Услуга адаптивной верстки рассылок

← Переход к списку


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

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

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

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

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

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

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

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

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

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

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

первый: перейти на страницу

домен/bitrix/admin/perfmon_tables.php

и в поле Фильтр по имени таблицы ввести b_event. перейти по точному совпадению таблицы.

другой: описан ниже

Письма, попавшие в 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) поменять на свои.
Нажать ВЫПОЛНИТЬ.
Битриксовская отправка письма — обёртка над функцией mail().
Если «Отправка не удалась!» функция mail не работает, свяжитесь с администрацией хостинга.

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

 use BitrixMainMailEvent;
$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. Если ошибка — исправить проблему с доступом продукта к папкам. Результатом должно быть удаление файлов и папок из кеша через модуль управления структурой. 

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# не может подставиться;

— какой-то из необходимых заголовков не задан в почтовом шаблоне в административной части сайта;

— в почтовом клиенте неверно настроено соответствие заголовков;

— отправитель письма не соответствует тому, что ожидает почтовый сервер.

— Битрикс заполняет заглушку #BCC# в полях Кому и Копии только в письмах, отправляемые модулем Интернет-магазин (например создание заказа).Если вы добавите #BCC# в Кому или Копию в шаблон регистрации пользователя или в свой кастомный, или любой другой шаблон без приставки SALE — письмо не отправится и будет иметь статус отправки F.

5) Обработчики событий отправки писем сработали неверно.
6) Обратите внимание на функцию custom_mail. Если она определена значит заменяет стандартную mail. Даже если она отработала корректно (отослались письма) статус может быть F или 0. Проверьте тариф используемого SMTP, проверьте логины, пароли а также адрес отправителя. Обычно используют класс PhpMailer. Включите дебаг, посмотрите ошибки.
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;

$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';

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

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

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

Если не работает отправка почты на Битриксе

1. Проверить отправку почту сервера (работу функции mail()):

Создайте тестовую страницу и пропишите в ней следующий php-код


$email="mail@gmail.com"; // ваш email
if (mail($email,"test subject", "test body"))
    echo "Сообщение передано, проверьте почту в том числе Спам";
else
    echo "Функция mail() не работает, обратитесь в тех.поддержку хостинга!";

Если функция mail() отработала и вам пришло тестовое письмо проблема в настройках Битрикса

2. Проверить список отправленных сообщений:

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

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

Если «Y» -письмо ушло, все в в порядке

Если «N»или «0» — зайдите /bitrix/php_interface/dbconn.php и удалите константы:


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

Через модуль управления структурой удалите папку /bitrix/managed_cache/.

Если «F» — функция mail() не работает. В этом случае может помочь:
Настройки/Настройки продукта/Настройки модулей/Главный модуль 

  • Конвертировать 8-битные символы в заголовке письма
  • Конвертировать символы новой строки Unix формата в Windows формат при отправке emai
  • Удалить скрытую копию (BBC)

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • 1с postgresql ошибка формата потока
  • 1с post запрос ошибка 400