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

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

3 мин чтения
Узнавайте о ломающих изменениях Битрикса раньше, чем они доедут до прода: свежие разборы — в канале @bxmax_updates

Модуль научился считать входящие по ящику или сотруднику за период и отдавать это 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).

Новая версия вышла — разбор уже в Telegram

В канале @bxmax_updates публикуем каждый свежий разбор: что сломается, что устарело и что появилось в API. Узнаете до того, как обновите прод.

Подписаться

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

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

Mail 26.1300.0: переезд с Яндекса и Mail.ru, тёмная тема писем и аватары отправителей

Mail 26.1300.0 в коробочном Битрикс24 готовит порталы к тому, что Яндекс и Mail.ru закрыли стандартные почтовые протоколы для внешних сервисов, причём для всех адресов, корпоративных тоже. Модуль научился предлагать перенос почты в Битрикс24 Почту, но по умолчанию эта функция выключена. Кроме того,…

1 мин
mail 26.1200.0 Заметное Свежее

Mail 26.1200.0: отложенная отправка, отмена отправки и автоответ за выключенными опциями

Mail 26.1200.0 идёт следом за [26.1100.0](/bitrix-updates/mail/mail-26-1100-0) и по объёму тянет на несколько релизов: отложенная отправка, отмена отправки, автоответ «в отпуске», группировка писем в переписки, картинки в подписях и генерация темы через AI. Всё это выключено опциями модуля, и после…

2 мин
mail 26.1000.0 Заметное

Mail 26.1000.0: FIELD_BCC без конвертных получателей, один адрес на портал и транзакции в MailboxTable

Mail 26.1000.0 вышел следом за [26.900.0](/bitrix-updates/mail/mail-26-900-0) и снова большой. Много кода спрятано за выключенными флагами: серверные черновики, метки, новая форма письма, AI-классификация входящих, макросы в подписях. Сразу после обновления заработают запрет повторного подключения а…

3 мин
mail 26.1100.0 Заметное

Mail 26.1100.0: smtpd.php без токена отвечает 404, а ящики удалённых пользователей удаляет агент

Mail 26.1100.0 вышел следом за [26.1000.0](/bitrix-updates/mail/mail-26-1000-0). Вендор пишет только о повышенной стабильности подключённых ящиков. В коде за этим стоят три вещи: инфраструктура «поколений источника» для переезда ящика на другой IMAP-сервер без потери истории (по умолчанию выключена)…

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

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

на связи

пишет…

Можно закрыть чат и перейти на другую страницу. Когда ответ будет готов, на кнопке Домового появится отметка.

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

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

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

Войти