Переменные выборки редактора для шаблонов уведомлений пропущенных сообщений
Предварительный просмотр образцов для MISSED CHAT MESSAGE и SUPPORT TICKET REPLY incl. raw vs. html-варианты отправителя/титула, используемые каноническими орга...
Почта Microsoft 365 через приложение Microsoft Graph (нулевая настройка почтового ящика)
Почта Microsoft 365 теперь читает/отправляет через приложение Microsoft Graph (Mail.ReadWrite/Mail. Отправить разрешение приложения) вместо IMAP — одно приложен...
Восстановление для совместного использования канонического шаблона LOAN STATUS UPDATE (9fab88c)
Восстановление для получения канонического шаблона LOAN DOCS READY LO (shared-lib)
Прекратите сериализацию вычисленного xoauth2 Getter, который сломал кэш MailCredentials Redis
MailCredentials кэшируется в Redis (GenericJackson2Json). Добавлено "isXoauth2()" Булевый геттер был сериализован как свойство «xoauth2», но не имеет поля для ч...
Маршрутизация почты всех облачных провайдеров через IMAP/SMTP с помощью OAuth2 (XOAUTH2)
Облачные провайдеры (Microsoft 365, Exchange Online, Google Workspace, Zoho, IceWarp) Унаследованное чтение / отправка от ****************, но разрешающий никог...
Согласие «отображать внешние изображения» на стороне сервера
Заменяет клиенто-локальное (localStorage) запоминание выбора внешнего изображения с прочной записью на одного члена. Новый RemoteImageConsentService (fail-soft ...
Сфера охвата почтового ящика / домена KamoMail для собственных доменов организации (перекрестная утечка)
БЕЗОПАСНОСТЬ: **************** Заголовок «Удачная электронная почта от виртуальных пользователей» (и ****************) «УДАЛЕНИЕ ИМЯ Виртуальных доменов» без оп...
Persist выбрал поставщика OAuth для обратного вызова, чтобы он перестал возвращаться в KamoMail
Переключение орга на Microsoft 365 (или Google Workspace / Zoho) никогда не застревал: обратный вызов OAuth хранил токены и переворачивал статус только на уже с...
Решите логотип приветственной почты от хоста темы org, а не apex
Логотипы заголовка / футера в системных электронных письмах (приветствие / проверка) были построены как **************** — высший путь, существующий только на К...
Постоянное сравнение секретов внутренней ауты (оракул времени)
Заменить String.equal на MessageDigest.isEqual, чтобы задержка ответа не могла X-Internal-Auth делится секретным байт за байтом. Широкий охват флота копировальн...
Образцы стендов для предварительного просмотра шаблона резюме
Добавляет образец Вариабельности для нового шаблона собрания-резюме, чтобы управляющий Предварительный просмотр UI отображает реалистичный контент.
Внутренняя конечная точка для создания / отмены календарного события участника
POST/api/internal/calendar/events (X-Internal-Auth gated) разрешает член -> Пользователь -> основной календарь (создание по умолчанию при необходимости) и созда...
Fixed public redirect + gateway-forwarded callback (недоступная ссылка)
Платформа электронной почты OAuth (Microsoft 365 / Google / Zoho) не имела действительной общедоступности перенаправление URI: перенаправление было получено из ...
Rebuild against gated shared-lib (mlos.intake beans now opt-in; исправление CrashLoop)
Wire mlos-internal-auth (INTERNAL AUTH SECRET) в развертывании
EmailService's InternalAuthFilter Guards /api/email/templates/send + /seed-org on Внутренний.auth.secret, который был закрыт (неудачный 503). Поделитесь существ...
Возврат 422 (не 500), если у участника нет почтового ящика
файлы списков и другие прочитанные конечные точки выкинули из IllegalStateException MailContext.toMailCredentials(), когда у участника не было учетных данных IM...
Не сохраняйте транзакционные NoReply отправляет в папку Sent
NoReply - это адрес только для отправки, без почтового ящика, но с каждой транзакцией. Отправить все еще пытался приложение IMAP к папке Sent, производя шумный ...
Изменения для добавления поддержки изменения пароля к профилям учетных записей
Учетные записи почтового ящика самоисцеления из приложения DB (возвращение дрейфа)
Приложение DB — источник истины, для которого должны существовать почтовые ящики; Учетные записи живут в виртуальных пользователях почтового сервера. Если DB по...
Список почтовых ящиков API возвращает UI-образный ****************
GET/api/email/mailboxes вернула необработанную сущность (providerStatus, lastSyncedAt, Без учета членов. UI настроек читает **************** Статус всегда был н...
Разрешить привилегированный доступ к почтовому ящику для чтения + отправки
разрешает доступ только через прямое назначение MemberMailbox, Почтовые ящики всплывали через **************** Права бросил NoSuchElementException -> "Не удалос...
Migrate to k1m1 (clone+registry+kubeconfig from k1m1, drop k2m1, simple kububl install)
Восстановление для обновления kamo-shared-library (шаблоны электронной почты подписавшего)
Выберите новые канонические шаблоны esign.signer verification + esign.signer invite так что seedForOrg может посеять их при первой отправке.
Wire DomainManager и MailboxProvisioner для всех облачных провайдеров
Замените заглушки UnsupportedOperationException в каждом облачном провайдере Настоящие HTTP-звонки против API администратора каждого бэкэнда: Microsoft 365 → M...
Поддерживаемые IMAP / SMTP отправки, папки и поиск облачных заглушки
Извлеките шаблон делегирования IMAP/SMTP в AbstractImapBackedCloudProvider Zoho, IceWarp, Exchange, Google Workspace и Microsoft 365 расширяются Это. Базовый кл...
MailReader с поддержкой IMAP для облачных заглушки
Zoho, IceWarp, Exchange, Google Workspace и Microsoft 365 раскрывают IMAP. так проводка каждого облачного провайдера методы MailReader через EmailImapService Вм...
Обслуживать встроенные изображения MIME-части и поверхностные метаданные Content-ID
Render <img src="cid:..."> в сообщениях UI путем экспонирования встроенных частей Тело HTML ссылается. - AttachmentInfo получает контентId (без угловых скобок)...
Сохранение оригинального имени файла и типа контента при загрузке вложения
**************** Конечные точки (как личные) и контроллеры с общим почтовым ящиком) выдавали Content-Disposition: вложение без параметра имени файла и Content-T...
Совпадение возможностей для создания рабочих мест, а не развертывание Kubernetes
Конкурентность на уровне рабочего процесса сериализовала весь трубопровод (включая кубектль). выкатки). Переместите группу на работу по сборке только так, чтобы...
Sync members.email, когда основной почтовый ящик назначен, изменен или удален
Когда почтовый ящик был назначен участнику в организации KAMO MAIL, участники.email Он никогда не обновлялся, в результате чего EmailCredentialService не смог р...
Mark-as-read for shared and member mailboxes
EmailController.setFlags now accepts an optional mailboxId query param and routes through resolveProviderWithMailbox so member-mailbox flags are set against the...
Обработка IMAPInputStream в getMessage для предотвращения ClassCastException
JavaMail может вернуть IMAPInputStream вместо декодированной строки Part.getContent() - когда содержание сообщения не было предварительно придумано. The Прямые ...
Используйте getHasAttachments(), чтобы соответствовать типу булевой обертки
**************** — булева (обертка), так что Ломбок Привязка () не является привязкой (). Последний только Существует для примитивного булева. Используйте Boole...
Reset stale hasAttachments on sync and accumulate correctly
- Reset has_attachments=false at start of bulk sync so stale true values from old false-positive MIME detection are cleared before re-indexing - Accumulate ha...
Поддержка от Address override в отправке
Добавляет из AddressRequest в EmailSendRequest, чтобы интерфейс мог указать alias/shared/mailbox адрес для отправки. Компания SmtpOnlyProvider использует этот а...
Fix attachment parsing and hasAttachment false positives
Three fixes to EmailImapService: 1. toEnvelope: narrow multipart check to multipart/mixed only — plain HTML+text emails (multipart/alternative) no longer sh...
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.