mail · mail 26.700.0 Заметное

mail 26.700.0: статистика писем для AI-ассистента и предупреждение о провайдерах

3 мин чтения

Модуль научился считать входящие по ящику или сотруднику за период и отдавать это AI-ассистенту как инструмент. Плюс появился слой ограничений по почтовым провайдерам. Основной риск обновления — не удаления, а вставка аргументов в середину конструкторов двух DTO.

Счётчик входящих и tool для ассистента

Новый MessageStatistics::getStatistics() возвращает MailStatisticsDto с incomingCount. Поверх него — GetMailStatisticsTool с ACTION_NAME = 'get_mail_statistics' для AI Assistant: ассистент теперь может ответить на «сколько писем пришло на этой неделе», не выдумывая цифру.

Два правила, зашитые в реализацию:

  • Входящее — это письмо в входящих папках, определяется по DIR_MD5. То есть считается физическое расположение письма, а не флаг направления.
  • mailboxId и employeeId вместе передать нельзя — tool вернёт ошибку. employeeId разворачивается в ящики владельца, но только те, что доступны текущему пользователю. Иначе через ассистента можно было бы посчитать чужую почту.

Права разруливает новый MailboxAccess с методами getAccessibleOwnerMailboxIds() и resolveUserMailboxIds() — тот же слой пригодится, если делаете свои отчёты по почте.

Ограничение провайдеров: Яндекс и Mail.ru

Появился ProviderAccessRestriction (isFeatureEnabled(), isRestricted(), resolveProviderName()), включается опцией mail / provider_restriction_notice = Y. Правила: для yandex ограничение показывается на бесплатных доменах (yandex.*, ya.ru, narod.ru), для mail.ru / mailru — всегда. Пользователь видит предупреждение в форме подключения ящика (попап provider-restriction-popup.ts).

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

Что сломается

Оба изменения — вставка параметров в середину, поэтому именованные аргументы переживут обновление, а позиционные молча разъедутся:

  • SearchMessagesDto::__construct — перед $limit и $offset вставлены ?array $bindings = null и ?array $excludeBindings = null. Позиционный вызов отправит ваш $limit в $bindings.
  • SearchMessagesByTasksRequest::__construct — вторым аргументом добавлен int $offset = 0, всё остальное сдвинулось.

TaskFinder::findTasksLinkedToMail() получил $offset = 0 в конец — этот совместим.

Если вы конструируете эти DTO, самое время перейти на именованные аргументы: тип у ?array и int разный, но при null в позиции $limit ошибки может и не быть — будет тихо неправильная выборка.

Что ещё появилось

  • MessageFilter::addIncludeBindings() / addExcludeBindings() — фильтр по привязкам сущностей (это и есть те самые bindings в DTO).
  • QueryBuilder::countMailMessages(), MessageSearch::count() — счётчик без выборки строк.
  • DateTimeParser::getNullableLowerBound() / getNullableUpperBound() / validateRange() — разбор интервала дат с валидацией. Пригодился как раз для периода в статистике.
  • У MessageByTaskSearch стали публичными buildMessageUrls, filterAccessibleRows, loadAccessByMessageTask, loadMessages — можно переиспользовать отдельные шаги, не гоняя весь поиск.

Что делать

  1. Проверьте позиционные вызовы SearchMessagesDto и SearchMessagesByTasksRequest — это главный риск обновления.
  2. Считаете почту сами — посмотрите на MessageStatistics и MailboxAccess, скорее всего свой код можно сократить.
  3. Решите, нужен ли вам попап ограничения провайдеров (mail / provider_restriction_notice).

Читайте дальше

mail 26.800.0 Заметное Свежее

mail 26.800.0: массовые действия над ящиками и fail-closed привязка письма к посту

Грид почтовых ящиков получил панель массовых действий: включить CRM или календарь пачке ящиков, отключить пачку ящиков разом. Фича спрятана за флагом. Плюс аккуратная переделка привязки письма к посту ленты и перевод установщика на миграции.

3 мин
bizprocdesigner 26.500.0 Заметное Свежее

bizprocdesigner 26.500.0: фильтр ноды приехал выключенным

Крупный UI-релиз редактора схем плюс новый тип конструкции — фильтр ноды. Ломающих изменений нет: все правки контроллера и DTO совместимы со старыми вызовами. Главное, что стоит знать заранее: фича спрятана за опцией и по умолчанию выключена.

3 мин
calendar 25.195.0 Заметное Свежее

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

Точечный релиз вокруг одной активности бизнес-процессов — «Получить информацию из календаря». Она научилась отдавать списки заголовков и суммарные минуты встреч, а заодно у неё поправили границу выборки. Публичного PHP API релиз не меняет.

3 мин
calendar 25.197.0 Заметное Свежее

calendar 25.197.0: тип события call_sync и чат, который создаётся сам

У события календаря появился собственный тип, и первый его пользователь — синхронизированные созвоны: при создании такого события автоматически поднимается чат с гостевой ссылкой. Ломающих изменений нет, все правки сигнатур совместимы.

3 мин
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти