некорректное поле отправитель сообщения bitrix
Не работает отправка сообщений на почту из модуля уведомлений
Вопрос. Как оно блин отправляет минуя скрипт записи в дамп и почему ругается на autorized user?
Так читай ответ Яндекса
Цитата |
---|
Дмитрий Б написал: Sender or From header address rejected: not owned by authorized user |
Отправитель или заголовок От отклонён: не принадлежит авторизованному пользователю
В пункте 2 ты настроил отправку от конкретного пользователя.
В пункте 4 ты пытаешься отправить письмо от другого пользователя.
Яндекс тебя шлёт нафиг
Цитата |
---|
Дмитрий Б написал: Вопрос. Как оно блин отправляет минуя скрипт записи в дамп и почему ругается на autorized user? |
Есть несколько способов отправки:
1) Мгновенная отправка (прямое выполнение bxmail)
2) Скрытая отправка (отправка без записи, почти прямое выполнение, но с обработкой)
3) Запись в b_event
Скорее всего у вас в БП создается отправка и записывается в b_event и время отправки еще не пришло (несколько минут)
Андрей Николаев, спасибо, погуглил. Итоговое решение для истории:
Настраиваем отлов писем с bxmail через добавление кода в dbconn.php
Пробуем отправить письма, смотрим лог. Видим что адрес портала в настройках сайта /bitrix/admin/site_edit.php?lang=ru&LID=s1 был указан неправильно.
Особое спасибо Антону Долганину за полезный комментарий
У меня такая же проблема. Если письмо уходит например, из бизнес-процесса, то норм (потому что работает настройка smtp), а если пользователь отправляет письмо из своей почты (клиент Битрикса), то в логах ругань: Sender or From header address rejected: not owned by authorized user
По идее, Битрикс должен как-то на лету подменять настройки smtp, в случае когда почти идет с клиента Битрикса от какого-то пользователя, но, видимо, этого не происходит.
Никто не сталкивался?
У меня такая же проблема. Если письмо уходит например, из бизнес-процесса, то норм (потому что работает настройка smtp), а если пользователь отправляет письмо из своей почты (клиент Битрикса), то в логах ругань: Sender or From header address rejected: not owned by authorized user
По идее, Битрикс должен как-то на лету подменять настройки smtp, в случае когда почти идет с клиента Битрикса от какого-то пользователя, но, видимо, этого не происходит.
Никто не сталкивался?
Такая ситуация, тоже с яндексом.
Тестовые сообщения приходят. Тесты проходятся. Но с сайта, из форм письма не приходят на info
ТП Яндекса пишет:
«Пожалуйста, выполните сетевую диагностику с помощью команды telnet в момент возникновения ошибки и пришлите мне результат в виде скриншотов:
Для IMAP: telnet imap.yandex.ru 993
Для POP3: telnet pop.yandex.ru 995
Для SMTP: telnet smtp.yandex.ru 465
Обращаю ваше внимание, что каждую из команд необходимо вводить отдельно в новом окне.
Эта информация поможет нашим специалистам во всем разобраться.
у меня порт 587 и не работает
из bash отправляется из bitrix нет
имя одинаковое
Не работает отправка сообщений на почту из модуля уведомлений
Вопрос. Как оно блин отправляет минуя скрипт записи в дамп и почему ругается на autorized user?
Так читай ответ Яндекса
Цитата |
---|
Дмитрий Б написал: Sender or From header address rejected: not owned by authorized user |
Отправитель или заголовок От отклонён: не принадлежит авторизованному пользователю
В пункте 2 ты настроил отправку от конкретного пользователя.
В пункте 4 ты пытаешься отправить письмо от другого пользователя.
Яндекс тебя шлёт нафиг
Цитата |
---|
Дмитрий Б написал: Вопрос. Как оно блин отправляет минуя скрипт записи в дамп и почему ругается на autorized user? |
Есть несколько способов отправки:
1) Мгновенная отправка (прямое выполнение bxmail)
2) Скрытая отправка (отправка без записи, почти прямое выполнение, но с обработкой)
3) Запись в b_event
Скорее всего у вас в БП создается отправка и записывается в b_event и время отправки еще не пришло (несколько минут)
Андрей Николаев, спасибо, погуглил. Итоговое решение для истории:
Настраиваем отлов писем с bxmail через добавление кода в dbconn.php
Пробуем отправить письма, смотрим лог. Видим что адрес портала в настройках сайта /bitrix/admin/site_edit.php?lang=ru&LID=s1 был указан неправильно.
Особое спасибо Антону Долганину за полезный комментарий
У меня такая же проблема. Если письмо уходит например, из бизнес-процесса, то норм (потому что работает настройка smtp), а если пользователь отправляет письмо из своей почты (клиент Битрикса), то в логах ругань: Sender or From header address rejected: not owned by authorized user
По идее, Битрикс должен как-то на лету подменять настройки smtp, в случае когда почти идет с клиента Битрикса от какого-то пользователя, но, видимо, этого не происходит.
Никто не сталкивался?
У меня такая же проблема. Если письмо уходит например, из бизнес-процесса, то норм (потому что работает настройка smtp), а если пользователь отправляет письмо из своей почты (клиент Битрикса), то в логах ругань: Sender or From header address rejected: not owned by authorized user
По идее, Битрикс должен как-то на лету подменять настройки smtp, в случае когда почти идет с клиента Битрикса от какого-то пользователя, но, видимо, этого не происходит.
Никто не сталкивался?
Такая ситуация, тоже с яндексом.
Тестовые сообщения приходят. Тесты проходятся. Но с сайта, из форм письма не приходят на info
ТП Яндекса пишет:
«Пожалуйста, выполните сетевую диагностику с помощью команды telnet в момент возникновения ошибки и пришлите мне результат в виде скриншотов:
Для IMAP: telnet imap.yandex.ru 993
Для POP3: telnet pop.yandex.ru 995
Для SMTP: telnet smtp.yandex.ru 465
Обращаю ваше внимание, что каждую из команд необходимо вводить отдельно в новом окне.
Эта информация поможет нашим специалистам во всем разобраться.
у меня порт 587 и не работает
из bash отправляется из bitrix нет
имя одинаковое
14 способов сломать почту и 3 простых шага диагностики
Итак, у вас не работает почта на сайте.
Что делать, куда бежать, кому звонить — хостингу, администратору сервера, разработчику или сразу в яндекс, где зарегистрирован почтовый ящик?
Почему у всех первый вопрос — смотрели ли вы в спаме? Конечно вы смотрели, письма там нет!
Чтобы локализовать проблему достаточно совершить несколько несложных действий, большинство из них в административной части сайта. Правда, для этого вы должны не бояться смотреть Таблицы и выполнять команды в Командной php-строке.
Небольшой ликбез
Битрикс посылает почтовые шаблоны функциями CEvent::Send() и CEvent::SendImmediate().
Письмо отправляется, если Битрикс нашел активный почтовый шаблон, подходящий под это событие и соответствующий текущему сайту.
Если письма отправлены через Send, они попадают в таблицу b_event.
Письма, попавшие в b_event, посылаются на агенте (на хитах) или на cron (по расписанию раз в несколько минут). То есть, они отправляются не сразу.
Если у вас на сервере есть другие сайты с симлинками к основному и письма отправляются на хитах — вы не можете заранее знать, с какого сайта технически отправится письмо. Это может быть важно, если у вас есть код обработчика события отправки, который есть только на одном сайте, но нет на других.
Итак, что же могло пойти не так?
Проблемы на сервере
В таблице b_event все или большинство строк имеют статус отправки F
Выполнение в Командной php-строке var_dump(mail(‘ваш@емейл’, ‘Тестовое письмо’, ‘Я пришло!’)); пишет false вместо true.
Это проблемы на стороне почтовой утилиты на сервере.
Если почта была настроена, но вдруг перестала ходить, ошибку можно искать в логах почтовой утилиты.
В стандартном виртуальном окружении Битрикса это /home/bitrix/msmtp_default.log
Администратор сервера или техподдержка хостинга.
Способ 1. Пользователь сайта не имеет права на чтение настроек
Баг мог быть пойман на bitrixEnv при удалении сайта через меню. Владельцем файла с настройками /home/bitrix/.msmtprc становится root, пользователь bitrix не имеет прав доступа, почта не отправляется.
Поменять владельца на bitrix:bitrix
Способ 2. Слишком много писем одновременно
При отладке почтовых шаблонов часто приходится ставить себя в скрытую копию. Если это магазин с сотней заказов в час или корпоративный портал с сотней работников в день, то писем будет приходить очень много.
В почтовых серверах может стоять ограничение на количество писем в минуту, час или день. Если лимит превышен, письма могут быть не доставлены. Ошибки можно увидеть в логах или узнать у техподдержки почтового сервера.
Увеличить пропускной лимит или уменьшить количество писем. Например, убрать лишних получателей из копий, отключить лишние почтовые шаблоны.
Способ 3. Заспамить почтовый сервер рассылками
Если вы пользуетесь промежуточным почтовым сервером, например на Яндексе или Gmail, то сделать рассылку на всю базу клиентов на 10 тысяч человек — не самое лучшее решение. Если вы превысили ограничение на количество писем в минуту, час или день — ваши письма могут перестать доставлять на 24 часа или пока вы не напишете в техподдержку.
Узнать свою квоту. Настроить рассылки, чтобы их скорость отправки не превышала 3/4 от указанной квоты.
Проблемы с заголовками
В вашем конкретном неотправленном письме в b_event стоит статус отправки F.
В логах почтовой утилиты есть ошибки про некорректные заголовки.
В почтовом шаблоне письма стоит заглушка #. # но при этом такого ключа нет в массиве полей в b_event.
Это техническая проблема, но она может возникать при неверных данных. Поэтому эту проблему придётся искать на всех уровнях. Письмо не отправится, если:
e-mail отправителя или получателя имеет неправильный формат;
по каким-то причинам одна из заглушек почтового шаблона вида #. # не может подставиться;
какой-то из необходимых заголовков не задан в почтовом шаблоне в административной части сайта;
в почтовом клиенте неверно настроено соответствие заголовков;
отправитель письма не соответствует тому, что ожидает почтовый сервер.
Администратор сайта — проверить в настройках почтового шаблона правильность полей.
Программист — проверить, что все заглушки подставляются, проверить отправку тестовых писем.
Администратор сервера или техподдержка хостинга — проверить логи почтовой утилиты и настройки сервера.
Способ 4. #ВСС# в Кому или Копии в письмах не из интернет-магазина
Битрикс заполняет заглушку #BCC# в полях Кому и Копии только в письмах, отправляемые модулем Интернет-магазин (например создание заказа).
Если вы добавите #BCC# в Кому или Копию в шаблон регистрации пользователя или в свой кастомный, или любой другой шаблон без приставки SALE — письмо не отправится и будет иметь статус отправки F.
А вот в поле Скрытая копия он заполняется везде.
Способ 5. Незаполненные заглушки для Кому или Копии
Если у вас в Кому или Копии стоит #EMAIL#, а в функцию заполнения полей письма вкралась ошибка и ключ EMAIL пропал — письмо не отправится. Даже если в других полях все данные корректны. В таблице оно будет иметь статус отправки F.
Проблемы с отправкой на cron
Письма в b_event имеют статус отправки N.
Если выполнить в командной php-строке команду отправки писем из b_event
CEvent::CheckEvents(); несколько самых старых писем с N меняют статус отправки на другой.
Чтобы письма отправлялись на cron, а не на хитах, должны быть установлены соответствующие константы и флаги в Битриксе, и скрипт отправки добавлен в расписание cron-задач на сервере от пользователя сайта.
Если cron-задачи нет или она работает некорректно, но при этом Битрикс ожидает, что отправка должна быть на cron — письма отправляться не будут.
Нужно добавлять и проверять cron-задачу или переключить отправку писем на хиты.
Способ 6. Константа BX_CRONTAB_SUPPORT = true, хотя отправка на хитах
При создании песочниц через Веб-окружение Битрикса, оно по умолчанию добавляет в dbconn.php константу BX_CRONTAB_SUPPORT. Если при создании была выбрана Поддержка cron = Y, то константа установится true. При этом если BX_CRONTAB не равен true, то отправка писем не произойдет (а BX_CRONTAB обычно задается только в cron-задаче).
Перенести отправку на cron как положено или убрать константу BX_CRONTAB_SUPPORT.
Способ 7. В Битриксе стоит галочка отправки на cron, но cron-задачи нет
При разворачивании бэкапа все настройки боя переносятся, при этом если cron-задачи поставлено не было — письма не отправятся.
Либо инструкции Битрикса могли быть выполнены не полностью или некорректно.
Поставить cron-задачу или перенести отправку на хиты.
Способ 8. Код в init.php, некорректно работающий на cron
Способ 9. Задачи на cron и сайт работают на разных версиях php
Например, сайт работает на php 5.6, а задача отправки писем на 5.3, и кто-то из разработчиков добавил в init.php объявление массива через квадратные скобки, а не array(). Сайт работает, но письма не отправляются из-за критичной ошибки php.
Проверять путь к php при установке cron-задачи, чтобы это был путь с версией как на сайте. Перед постановкой cron-задачи запускать команду в консоли и проверять ее вывод на наличие ошибок. Перенаправлять ошибки исполнения cron-задач в лог-файл.
Проблемы в коде
Выполнение в Командной php-строке var_dump(mail(‘ваш@емейл’, ‘Тестовое письмо’, ‘Я пришло!’)); пишет true
В вашем конкретном неотправленном письме в b_event стоит статус отправки F или 0
Почтовый шаблон вашего конкретного неотправленного письма активен и привязан к текущему сайту.
В этом случае очень вероятно, что какие-то обработчики событий отправки писем сработали неверно.
Способ 10. Битый символ в теле письма
В функции наполнения полей перед отправкой письма случайно обратиться к строке с кириллицей как к массиву. Это вернёт один битый байт вместо двухбайтного символа. Битрикс не сможет корректно записать его в базу. Сериализованный массив полей в b_event будет битым и письмо не сможет отправиться. Ошибку можно заметить в b_event — данные в C_FIELDS обрываются на середине, не имеют закрывающей скобки, и десериализовать их не получается.
Проблемы с почтовыми шаблонами
Способ 11. Почтовые шаблоны отключены или привязаны не к тому сайту
В вашем конкретном не отправленном письме в b_event стоит статус отправки 0.
В почтовом шаблоне снята галочка активности или нет привязки к нужному сайту.
Поставить нужные галочки и сохранить.
Проблемы почты при обмене с CRM, 1С и прочим
Способ 12. Частые и избыточные обновления заказов
Кроме того, что почта может не приходить, почта может еще и дублироваться. Обычно 20 одинаковых писем не нравятся пользователям гораздо больше, чем 0.
Самая частая проблема — изменение статусов заказов и флага отмены при обменах с внешними сервисами CRM, 1С и другие. Письмо отправляется на каждое изменение статуса заказа. Даже если статус меняется на такой же, функция вызвана, значит, надо отправить шаблон.
Полностью отключить дублирующие почтовые шаблоны, если они не нужны. Либо писать скрипт, который бы не позволял отправлять одинаковые письма на один e-mail.
Способ 13. Свойства заказа указываются после его создания
В письме о создании заказа не хватает информации, хотя в административной части в заказе она есть.
При оформлении заказа на сайте заказ создается целиком со свойствами, товарами, доставками и оплатами. При отправке письма на создание заказа Битрикс обладает всей необходимой информацией.
При создании заказов из внешних систем, особенно если это непроверенные модули из маркетплейса или написанные специально для вашего проекта, заказ может быть сначала создан, а потом к нему привяжутся свойства, товары и т.д. Письмо же отправляется ровно при создании заказа, хотя в тот момент в нем может быть только номер, общая сумма и пользователь.
Письмо может либо просто не уйти, если почта получателя берется из свойств, либо уйти без информации о заказе.
Если есть возможность переписать код — создавать заказ сразу со всей информацией. Если такой возможности нет — не давать отправлять такие письма, либо переводить отправку писем с создания заказа на другие события или на расписание.
Проблемы со спам-фильтрами почтового сервера получателя
Письма попадают в спам
Часть писем доходит, часть нет, никакой явной зависимости от содержимого письма нет, со стороны сайта все отправляется корректно, на почтовом сервере ошибок нет.
Популярные почтовые клиенты, особенно gmail, имеют фильтры доверия. Если пользователи считают ваши рассылки спамом, то и почтовая служба рано или поздно начнут так считать.
Тогда ваши письма могут не только оказаться в спаме, но и не доставляться совсем.
Настроить SPF, DKIM и DMARC. Так вы скажете почтовой службе, что эти письма посылаются не из неизвестного источника, а с вашего домена. После этого почтовые службы начинают лучше относиться к письмам.
Способ 14. Письмо от mail или list
В настройках Битрикса отправителем по умолчанию указан адрес на mail или list, письма могут не доставляться на gmail.
Не использовать как отправителя адреса с mail или list. В идеале — настроить почтовый ящик с доменом своего сайта, настроить spf и dkim.
3 простых шага диагностики
Поделитесь этой статьей в соц.сетях, заполните форму в конце странице и получите плакат для диагностики неисправностей почты.
Шаг 0. Проверить спам
Шаг 1. Найти свое письмо в b_event, посмотреть статус success_exec
Шаг 2. Для каждого статуса различные действия:
Отправляются ли письма на cron?
да, и время шага cron-задачи уже прошло
Вывод: ошибка запуска cron-задачи или ошибка кода в init.php. Должен смотреть программист.
Вывод: очередь отправки еще не дошла. Нужно походить по публичке, поделать хиты. Если и после этого не отправилось — скорее всего ваши письма на cron.
Отправить себе письмо функцией mail через php
Вывод: проблема с письмом, данными или кодом. Требуется проверить поля в почтовом шаблоне. Если все хорошо — пишем программисту.
Вывод: проблемы на сервере. Пишем администратору сервера.
Почтовый шаблон активен и привязан к текущему сайту?
Вывод: скорее всего проблема в обработчиках. Отправляйте программиста ставить логи.
Вывод: надо активировать и привязать.
Проверить в спаме еще раз. Попробовать отправить на другую почту другого почтового клиента.
Вывод: у вас проблема с доверием почтовой службы. Нужно настраивать spf/dkim для писем.
Вывод: требуется разбираться с почтовым сервером. Получать все логи, искать, какое звено цепочки теряет письмо.
Письма нет в b_event
Отправляем себе другое письмо, например на создание заказа.
Вывод: проверить почтовый шаблон. Если всё хорошо, отправить программиста ставить логи на отправку.
Вывод: вернуться к началу алгоритма для нового письма.
Поделитесь этой статьей в соц.сетях, заполните форму в конце страницы и получите плакат для диагностики неисправностей почты.
Если не отправляется почта из коробочного Битрикс24
Мы в «Авиви» обратили внимание на частые запросы от пользователей коробочного Битрикс24 по решению проблемы с нерабочей почтой. Во всех случаях прослеживается один и тот же сценарий: когда в коробку пытаются подключить новый почтовый ящик, домен которого отличается от того, на который регистрировался Портал, — письма просто не отправляются. Мы разобрали ситуацию и даже создали собственное решение. Но в целом, пользователям следует знать, что это совсем не «баги» Битрикс24, а закономерность.
Причина нерабочей почты
Смотреть нужно, в первую очередь, на настройки SMTP. «Simple Mail Transfer Protocol» или простой протокол передачи почты отвечает в Битрикс24 не только за электронную почту, но и за приглашение сотрудников в портал, все уведомления и многое другое. В облачной версии набора инструментов для бизнеса, SMTP-сервер находится на стороне разработчиков, ими поддерживается и конфигурируется для широких масс пользователей со всего мира. Поэтому в облаке не составит проблем подключить к своей системе произвольный почтовый ящик, получать и отправлять с него письма.
В коробочной редакции SMTP идет в комплекте с остальными компонентами Битрикс24 и работает уже на Вашем сервере. Его настройка происходит вместе с развертыванием коробки и здесь кроется ключ ко всем последующим трудностям. Обычно SMTP «затачивают» только для доменного имени почты, на которую происходит регистрация портала. Это логично, поскольку неизвестно, почту на каком другом домене, которых в мире миллионы, захотите использовать Вы или Ваши сотрудники.
Таким образом, в новой коробке будут отлично работать лишь почты с одним доменным именем. Например, если Портал зарегистрирован на Gmail, то без проблем получится подключать и пользоваться всем, что заканчивается на @gmail.com. Но не более. Для остальных доменных имен нужны дополнительные индивидуальные настройки.
Каверзная ситуация
Конечно, если помнить о SMTP с самого начала, стресса будет меньше. Но абсолютное большинство пользователей, примерно 93%, как я уже говорил, вообще не вникают в данную ситуацию. Поэтому многих это вводит в ступор. В реалиях подключить собственный почтовый ящик с отменным от настроенного доменно возможно. Вы выполняете такие же действия, как и в облачном сервисе, указываете нужный адрес и сохраняете настройки. Скажу больше — Вы даже сможете получать письма в Битрикс24 с этого почтового ящика, поэтому подвох заметите не сразу. Но вот отправить ничего не получится: либо нельзя будет выбрать нужную почту, либо просто ничего не произойдет.
Эта особенность создает впечатление поломки Битрикс24, хотя такой вовсе не является. Поэтому если у Вас такая же проблема — не спешите ставить диагноз системе. Ведь программа просто не понимает что от нее хотят.
Два простых решения
Первым решением ситуации с почтой может быть настройка SMTP. Если Вы знаете, как это сделать — можете закрывать эту вкладку.
Второе простое решение мы создали сами в виде модуля для коробочного Битрикс24. Команда разработчиков учла все нюансы ситуации, чтобы рядовые пользователи не заметили разницу между работой с почтой на облаке и коробке — в локальной редакции будет возможность подключать, практически, неограниченное количество доменных имен почтовых сервисов.
Способности модуля
Кому интересно, мы научили наше решение следить за проверкой отправителя (from). Если доменное почтового сервиса отличается от того, что указано по умолчанию для коробочного Битрикс24, модуль включается в работу и отправляет письмо с нужными настройками SMTP.
Последнее, но не менее важное: наше решение не является кастомизацией ядра, поэтому всем подходит и не ломается от обновлений локальной редакции. Одним словом — получилась, так сказать, панацея, если сравнить с болезнью ситуацию с SMTP.
Собственные почтовые ящики возможно подключить через протокол IMAP. А можно и создать собственный, с которым модуль также работает корректно.
Все, что разработчики Битрикс24 сами добавляют в систему, в дополнительных настройках не нуждается, модуль их понимает. Таким образом не имеет значения, существует почтовый сервис сейчас, или будет придуман в недалеком будущем — проблем с его использованием не будет.
Последнее, но не менее важное: наше решение не является кастомизацией ядра, поэтому всем подходит и не ломается от обновлений локальной редакции. Одним словом — получилась, так сказать, панацея, если сравнить с болезнью ситуацию с SMTP.