Добрый день! Столкнулся с проблемой, а именно в использовании функционала "Пересылка сообщений в свой Битрикс24"
Все настройки выполнены согласно инструкции, также к домену сделана mx запись mail-001.bitrix24.by (портал находится на территории РБ). И в чем вся суть, в целом всё ок, но и при этом при отправке писем на почтовые ящики, которые идут в пересылке ничего не происходит. Обращался в ТП Б24, все поподробней уточняли, давали рекомендации, перекидывали на инженерную линию, но по факту проблема так и не решена уже более месяца. Подскажите, может кто-то с подобной проблемой сталкивался, если да, то как решили. За ранее огромное спасибо и с наступающим новым годом!
После анализа механизма обработки входящих писем в коробочной версии Bitrix было установлено, что при отправке писем на так называемые "быстрые" почтовые ящики (адреса вида ) почтовый шлюз Bitrix инициирует HTTP-запрос в файл /bitrix/modules/mail/tools/mail_entry.php. Этот файл является основной точкой входа для обработки входящей почты и её маршрутизации в соответствующие сущности портала: живую ленту, задачи, CRM и другие модули.
При отправке письма на адрес, предназначенный для создания поста в живой ленте, запрос в mail_entry.php формируется корректно. В нём присутствуют как тип сущности (ENTITY_TYPE), так и идентификатор сущности (ENTITY_ID), благодаря чему стандартная логика Bitrix без проблем создаёт запись в живой ленте.
Ситуация оказалась иной при отправке писем на адреса, предназначенные для создания задач. В этом случае в запросе также корректно приходят все данные письма: тема, текст, HTML-версия, информация об отправителе и получателе, а также почтовый токен, который Bitrix связывает с пользователем. Однако в структуре связки при этом передаётся ENTITY_TYPE = TASKS_TASK, но поле ENTITY_ID остаётся пустым, при том что USER_ID указан корректно.
Именно это оказалось ключевой причиной проблемы. Стандартная логика Bitrix в mail_entry.php не содержит механизма, который интерпретировал бы связку ENTITY_TYPE = TASKS_TASK и пустой ENTITY_ID как команду на создание новой задачи. Штатный код предполагает либо работу с уже существующей задачей (когда ENTITY_ID заполнен), либо маршрутизацию письма в другие сущности. Сценарий "письмо в задачи без указания конкретной задачи — создать новую задачу" в коробочной версии отсутствует.
Из-за этого обработчик Bitrix\Mail\User::onEmailReceived() возвращал успешный результат, HTTP-ответ был 204, и система считала письмо обработанным, но фактически задача не создавалась. Ошибок при этом не возникало, что дополнительно усложняло диагностику. Для устранения этого пробела было реализовано кастомное решение, которое отлавливает случаи, когда приходит ENTITY_TYPE = TASKS_TASK при пустом ENTITY_ID, и трактует их как команду на создание новой задачи. На основе данных письма формируется задача: тема письма используется как заголовок, текст письма - как описание, а USER_ID - как автор и ответственный. После успешного создания задачи пользователю отправляется системное уведомление о том, что новая задача была создана на основе письма.