29 Октября 2019 16:12
// 1С-Битрикс — Разработка

Если при проверки сайта инструментом «Проверка сайта», возникает ошибка «Есть ошибки при отправке системных почтовых сообщений, число неотправленных сообщений». Способы решения данной проблемы:
Если при проверки сайта инструментом «Проверка сайта», возникает ошибка «Есть ошибки при отправке системных почтовых сообщений, число неотправленных сообщений«. Способы решения данной проблемы:
- Закомментировать строку define(«BX_CRONTAB_SUPPORT», true); или удалить ее. Данную строку могут добавлять некоторые плагины.
- Так же, возможно не включены шаблоны в «Настройки продукта -> почтовые шаблоны«
Примечание:
После решения проблемы, все не отправленные письма будут разосланы.
P.S. Так же возможны конфликты с настройкой SMTP, для отправки сообщений с сайта.
Проверяем настройки почтового события веб-формы и связанные шаблоны
Давайте перейдем по пути Панель управления -> Настройки -> Настройки продукта -> Почтовые события и выберем событие.
1. На первой вкладке галочки кодов языка включены?
2. На вкладке «Шаблоны» галочка имени сайта включена?
3. Почтовый шаблон активен?
4. Поле «От кого» заполнено верно (по умолчанию #DEFAULT_EMAIL_FROM#) ?
5. Поле «Кому» заполнено верно (по умолчанию #EMAIL#) ?
Все верно? Смотрим дальше. В настройках модуля веб-формы отключите галочку «использовать упрощенный режим». Перейдите в настройки формы на вкладку «дополнительно» и проверьте, включен ли флаг привязки к почтовому шаблону. Готово?
Перейдите по адресу Настройки -> Инструменты -> SQL-запрос и выполните такой запрос:
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», вернитесь к началу, настройкам почтовых событий, и проверьте заново.
источник
Содержание
- Устранение ошибок CMS Битрикс
- Отправка почты
- Режим работы MySQL
- Размер стека и pcre.recursion_limit
- Выполнение агентов на cron
- Обязательные параметры PHP
- BitrixVM 7.2.2 не отправляются сообщения больше 64Кб
- Проблемы с отправкой почты
- BitrixVM 7.2.2 не отправляются сообщения больше 64Кб
- BitrixVM 7.2.2 не отправляются сообщения больше 64Кб
Устранение ошибок CMS Битрикс
Опция «Проверка системы» в CMS Битрикс позволяет проверить соответствие настроек хостинга требованиям CMS и вашего сайта. При запуске этой опции на хостинге Timeweb, Битрикс, как правило, приводит несколько ошибок и замечаний. В этой статье мы рассмотрим, как их исправить.
Отправка почты
Речь идет о двух параметрах: «Отправка почты» и «Отправка почтового сообщения больше 64Кб».
Уведомление: Ошибка! Не работает
Эта ошибка возникает, если вы используете хостинг на тестовом периоде — до оплаты услуги почта недоступна. Как только хостинг будет оплачен, почта заработает.
Режим работы MySQL
Уведомление: Ошибка! innodb_strict_mode=ON, требуется OFF. Переменная sql_mode в MySQL должна быть пустая, текущее значение: NO_ENGINE_SUBSTITUTION
Эта ошибка критична. Она может привести к блокировке запросов к базе данных, что практически означает остановку работы сайта.
Решение:
Необходимо внести изменения в файлы конфигурации Bitrix, в которых задаются параметры базы данных, и указать в них нужные значения. Отредактировать файлы можно, например, с помощью Файлового менеджера.
В файл /public_html/bitrix/php_interface/after_connect.php под уже имеющимися строками и до символов ?> добавьте:
В файл /public_html/bitrix/php_interface/after_connect_d7.php под уже имеющимися строками и до символов ?> добавьте:
После этого проверка Bitrix пройдет успешно.
Размер стека и pcre.recursion_limit
Уведомление: Замечание: Возможны проблемы в работе с длинными строками из за системных ограничений
Это замечание некритично и, как правило, на работе сайтов не сказывается, однако оно может влиять на обработку очень длинного текста, например, если в нем сотни тысяч символов.
Этот параметр влияет на возможность обработки строк регулярными выражениями. Лимит по умолчанию установлен достаточно большой, чтобы можно было обработать практически любой контент на сайте, но для устранения замечания можно дополнительно внести изменения.
Решение:
- Если у вас тариф мощного хостинга, решением будет переключение сайта на PHP 7.4. Это можно сделать в разделе «Сайты» по нашей инструкции.
- Если у вас тариф обычного хостинга или если смена версии PHP не помогла, исправить ошибку, добавьте в файл /public_html/.htaccess строки:
Выполнение агентов на cron
Уведомление: Замечание: Агенты выполняются на хитах, рекомендуется перенести их выполнение на cron
Это замечание некритично. В Битрикс предусмотрен внутренний планировщик задач (агентов). Данное замечание влияет на то, насколько точно по времени сработают запланированные задачи. Грубо говоря, скрипты сайта выполняются, только когда его страницы кто-то посещает. Если нет посещений, то и таймер работать не будет. Cron позволяет полностью решить проблему с планированием задач.
Решение:
Чтобы перенести работу непериодических агентов (и передачу почты) на Сron, необходимо установить константу BX_CRONTAB_SUPPORT .
Для этого добавьте в файл /public_html/bitrix/php_interface/dbconn.php строку:
1. В разделе Crontab нажмите «Добавить новую задачу» и задайте удобное имя для задачи.
2. В пункте «Исполнитель» выберите «Исполняемый бинарный файл».
3. В пункте «Путь до файла» укажите команду следующего вида:
- В /opt/php72/bin/php укажите ту версию php, которую использует сайт. Например, /opt/php74/bin/php ( или /opt/php7.4/bin/php ).
- Вместо /home/u/user/site.ru/public_html укажите корректный путь до папки сайта и замените u и user на первую букву вашего логина и сам логин.
4. В пункте «Периодичность» выберите «Каждую минуту».
Уведомление: Ошибка! Не настроен запуск cron_events.php на cron
Эта ошибка может возникнуть, если в пункте выше вы только добавили константу, но не добавили задачу cron. Без настройки задачи в crontab будет остановлена часть агентов, в том числе с сайта перестанет отправляться почта. Письма будут накапливаться в очередь и отправляться по частям после устранения ошибки.
Решение:
Выполните приведенную выше инструкцию по добавлению задачи cron, и ошибка будет устранена.
Обязательные параметры PHP
Уведомление: Ошибка! Значение max_input_vars должно быть не ниже 10000
Эта ошибка не влияет на работоспособность сайта напрямую, но может отразиться на работе с большими формами в административной панели. При работе с инфоблоками низкое значение параметра max_input_vars может вызвать проблемы с сохранением настроек, поэтому система выделяет эту ошибку как критическую.
Решение:
Необходимо добавить следующую строку в файл /public_html/.htaccess :
Источник
BitrixVM 7.2.2 не отправляются сообщения больше 64Кб
Сайт работает на BitrixVM 7.2.2 что необходимо поправить на сервере ? Все агенты выполняются на кроне. других ошибок в тесте нет.
| Цитата |
|---|
| Юрий Коренюк написал: BitrixVM 7.2.2 что необходимо поправить на сервере |
Успешно
2018-Mar-30 09:14:45 Отправка почты (check_mail): Warning
Замечание. Отправлено. Время отправки: 1.04 сек.
2018-Mar-30 09:14:47 Отправка почтового сообщения больше 64Кб (check_mail_big): Fail
Ошибка! Не работает
2018-Mar-30 09:14:47 Проверка на наличие неотправленных сообщений (check_mail_b_event): Ok
Ответ техподдержки битрикс для моего удобства сделали скрипт
Что с этим делать ? и на какую причину он указывает ?
Jun 08 16:49:56 host=smtp.yandex.ru tls=on auth=on user=info@xx.ru from=info@xx.ru recipients= hosting_test@bitrixsoft.com , noreply@bitrixsoft.com smtpstatus=554 smtpmsg=’554 5.7.1 [2] Message rejected under suspicion of SPAM; https://ya.cc/1IrBc 1528465796-U6eZsBbL3s-ntL4J2bL’ errormsg=’the server did not accept the mail’ exitcode=EX_UNAVAILABLE
| Цитата |
|---|
| Антон Зв написал: 554 5.7.1 [2] Message rejected under suspicion of SPAM; |
Да, нужно убедиться что авторизация на сервере почты — успешна.
На сервере Яндекс.Почты пока не создали пароль приложения — ничего не получалось.
Аналогичная проблема с Яндексом.
Из консоли, через mail() письма отправляются и доходят до любого адресата, без попадания в спам.
Из веб-интерфейса почты то же самое. Отправлял даже на noreply@bitrixsoft.com , все ОК.
На сервере не было записи SPF и DMARC, добавил.
Попутно повысил уровень доверия выполнив все рекомендации.
В логе msmtp все равно уведомление «Message rejected under suspicion of SPAM».
Источник
Проблемы с отправкой почты
Да такое я видел пример но это не нужно. Хочется понят насколько удобен продукт.
Прописал как указано тут?
[mail function]
; For Win32 only.
SMTP = mail.domain.ru
smtp_port = 25
; For Win32 only.
sendmail_from = admin@domain.ru
;Bitrix Env replace()
sendmail_path= msmtp -t -i
;/Bitrix Env replace()
но естественно со своими данными
| Цитата |
|---|
| Burenkoff пишет: Да такое я видел пример но это не нужно. Хочется понят насколько удобен продукт. |
Прописал как указано тут?
[mail function]
; For Win32 only.
SMTP = mail.domain.ru
smtp_port = 25
; For Win32 only.
sendmail_from = admin@domain.ru
;Bitrix Env replace()
sendmail_path= msmtp -t -i
;/Bitrix Env replace()
но естественно со своими данными
а в файле msmtp править нужно что-нибудь?
| Цитата |
|---|
| Burenkoff пишет: а в итоге почта (само сообщение) будет писаться на портале или подключать локальный клиент почты или выводить сразу на веб ящик? Нужно просто понять как тут почта работает. Интересно было бы если письма писались прямо с корп портала. |
Если письмо придёт то
| Цитата |
|---|
| отправляются через SMTP Сервер, указанный в настройках. |
Проверить Администрирование — Настройки — Инструменты — Проверка сайта — Тестирование конфигурации
Строку
| Цитата |
|---|
| serik.sh пишет: Проверить Администрирование — Настройки — Инструменты — Проверка сайта — Тестирование конфигурации Строку «Проверка на наличие неотправленных сообщений» |
Похожая проблема — через форму обратной связи, похоже, никуда ничего не приходит
Тестирование конфигурации выдает:
| Передача POST запроса с большим числом параметров | подробнее Успешно |
| Отправка почты | подробнее Успешно |
| Отправка почтового сообщения больше 64Кб | подробнее Успешно |
| Проверка на наличие неотправленных сообщений | подробнее Есть ошибки при отправке системных почтовых сообщений, число неотправленных сообщений: 740 |
Каждое нажатие кнопки «Отправить» в форме обратной связи увеличивает количество неотправленных сообщений.
В настройках php:
Вопрос. Проблема в том, что неверно указан сервер smtp? Нужно указать что-то настоящее? Например, smtp.mail.ru, если есть ящик на mail.ru?
А рассылки с сайта работают.
А вот с сайта пришло письмо о регистрации нового пользователя. В заголовках:
Источник
BitrixVM 7.2.2 не отправляются сообщения больше 64Кб
Сайт работает на BitrixVM 7.2.2 что необходимо поправить на сервере ? Все агенты выполняются на кроне. других ошибок в тесте нет.
| Цитата |
|---|
| Юрий Коренюк написал: BitrixVM 7.2.2 что необходимо поправить на сервере |
Успешно
2018-Mar-30 09:14:45 Отправка почты (check_mail): Warning
Замечание. Отправлено. Время отправки: 1.04 сек.
2018-Mar-30 09:14:47 Отправка почтового сообщения больше 64Кб (check_mail_big): Fail
Ошибка! Не работает
2018-Mar-30 09:14:47 Проверка на наличие неотправленных сообщений (check_mail_b_event): Ok
Ответ техподдержки битрикс для моего удобства сделали скрипт
Что с этим делать ? и на какую причину он указывает ?
Jun 08 16:49:56 host=smtp.yandex.ru tls=on auth=on user=info@xx.ru from=info@xx.ru recipients= hosting_test@bitrixsoft.com , noreply@bitrixsoft.com smtpstatus=554 smtpmsg=’554 5.7.1 [2] Message rejected under suspicion of SPAM; https://ya.cc/1IrBc 1528465796-U6eZsBbL3s-ntL4J2bL’ errormsg=’the server did not accept the mail’ exitcode=EX_UNAVAILABLE
| Цитата |
|---|
| Антон Зв написал: 554 5.7.1 [2] Message rejected under suspicion of SPAM; |
Да, нужно убедиться что авторизация на сервере почты — успешна.
На сервере Яндекс.Почты пока не создали пароль приложения — ничего не получалось.
Аналогичная проблема с Яндексом.
Из консоли, через mail() письма отправляются и доходят до любого адресата, без попадания в спам.
Из веб-интерфейса почты то же самое. Отправлял даже на noreply@bitrixsoft.com , все ОК.
На сервере не было записи SPF и DMARC, добавил.
Попутно повысил уровень доверия выполнив все рекомендации.
В логе msmtp все равно уведомление «Message rejected under suspicion of SPAM».
Источник
BitrixVM 7.2.2 не отправляются сообщения больше 64Кб
Сайт работает на BitrixVM 7.2.2 что необходимо поправить на сервере ? Все агенты выполняются на кроне. других ошибок в тесте нет.
| Цитата |
|---|
| Юрий Коренюк написал: BitrixVM 7.2.2 что необходимо поправить на сервере |
Успешно
2018-Mar-30 09:14:45 Отправка почты (check_mail): Warning
Замечание. Отправлено. Время отправки: 1.04 сек.
2018-Mar-30 09:14:47 Отправка почтового сообщения больше 64Кб (check_mail_big): Fail
Ошибка! Не работает
2018-Mar-30 09:14:47 Проверка на наличие неотправленных сообщений (check_mail_b_event): Ok
Ответ техподдержки битрикс для моего удобства сделали скрипт
Что с этим делать ? и на какую причину он указывает ?
Jun 08 16:49:56 host=smtp.yandex.ru tls=on auth=on user=info@xx.ru from=info@xx.ru recipients= hosting_test@bitrixsoft.com , noreply@bitrixsoft.com smtpstatus=554 smtpmsg=’554 5.7.1 [2] Message rejected under suspicion of SPAM; https://ya.cc/1IrBc 1528465796-U6eZsBbL3s-ntL4J2bL’ errormsg=’the server did not accept the mail’ exitcode=EX_UNAVAILABLE
| Цитата |
|---|
| Антон Зв написал: 554 5.7.1 [2] Message rejected under suspicion of SPAM; |
Да, нужно убедиться что авторизация на сервере почты — успешна.
На сервере Яндекс.Почты пока не создали пароль приложения — ничего не получалось.
Аналогичная проблема с Яндексом.
Из консоли, через mail() письма отправляются и доходят до любого адресата, без попадания в спам.
Из веб-интерфейса почты то же самое. Отправлял даже на noreply@bitrixsoft.com , все ОК.
На сервере не было записи SPF и DMARC, добавил.
Попутно повысил уровень доверия выполнив все рекомендации.
В логе msmtp все равно уведомление «Message rejected under suspicion of SPAM».
Источник
Для начала полностью отключим выполнение агентов на хите. Для этого выполним следующую команду в php консоли.
COption::SetOptionString("main", "agents_use_crontab", "N");
echo COption::GetOptionString("main", "agents_use_crontab", "N");
COption::SetOptionString("main", "check_agents", "N");
echo COption::GetOptionString("main", "check_agents", "Y");
В результате выполнения должно быть «NN».
После этого убираем из файла /bitrix/php_interface/dbconn.php определение следующих констант:
define("BX_CRONTAB_SUPPORT", true);
define("BX_CRONTAB", true);
И добавляем
if(!(defined("CHK_EVENT") && CHK_EVENT===true)) define("BX_CRONTAB_SUPPORT", true);
Создаем файл проверки агентов и рассылки системных сообщений /bitrix/php_interface/cron_events.php
<?php $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/../.."); $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS",true); define('BX_NO_ACCELERATOR_RESET', true); define('CHK_EVENT', true); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); @set_time_limit(0); @ignore_user_abort(true); CAgent::CheckAgents(); define("BX_CRONTAB_SUPPORT", true); define("BX_CRONTAB", true); CEvent::CheckEvents(); if(CModule::IncludeModule('sender')) { BitrixSenderMailingManager::checkPeriod(false); BitrixSenderMailingManager::checkSend(); } require($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/tools/backup.php"); ?>
И добавляем данный скрипт в cron
*/5 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php
После этого все агенты и отправка системных событий будут обрабатывается из под cron, раз в 5 минут. Чтобы не увеличивалась очередь отправки почтовых сообщений, советую изменить параметр отвечающий за количество почтовых событий обрабатываемых за раз. Для этого выполняем в php консоли следующую команду
COption::SetOptionString("main", "mail_event_bulk", "20");
echo COption::GetOptionString("main", "mail_event_bulk", "5");
В этой статье мы расскажем вам о том, где смотреть причины ошибки неотправленной почты в Битриксе. Рассмотрим три основных мест, откуда можно найти ошибку отправки писем.
Проверка таблицы очереди писем
Идем в административную панель Битрикса по пути: Настройки / Производительность / Таблицы. Ищем таблицу 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, метод авторизации и т.п.)
На этом все, надеюсь статья была вам полезна. Если у вас возникнут вопросы, задавайте в комментарий.