Mailbox список API повертає UI-подібний ***********
GET /api/email/mailboxs повернули сиру суб'єкт (providerStatus, lastSyncedAt, не кількість членів. The Settings UI reads********************************** Стату...
Авторизація доступу поштових скриньок на основі привілеїв для читання + відправлення
вирішитиForMailbox тільки наданий доступ через пряме призначення електронної пошти Учасника, so mailboxes topd через ********************* тюрма NoSuchElementEx...
Migrate до k1m1 (clone + реєстр + k1m1, краплі k2m1, простий kubectl установки)
Перебудувати для kamo-shared-library оновлення (визначте шаблони електронної пошти)
Підібрати нові канонічні шаблони esign.signer verification + esign.signer invite so SeedForOrg може висаджувати їх на першому відправленні.
Bump для kamo-shared-library 1.5.0 snapshot оновлення (M2 каталог програм)
Wire DomainManager і MailboxProvisioner для всіх постачальників хмарних сервісів
Замініть непідтримуваніОпераціяВинятки в кожному хмарному провайдеру реальний HTTP-зв'язок від кожного API-адреса: - Microsoft 365 → Microsoft Graph (/users, /...
IMAP/SMTP-backed надсилання, папка та пошук хмарних вузлів
Видобуток ІМП/СМТП делегаційного візерунка на АнотаціяImapBackedCloudProvider У мене є Zoho, IceWarp, Exchange, Google Workspace, Microsoft 365 розширено це. Ба...
IMAP-backed MailReader для хмарочосних вузлів
Zoho, IceWarp, Обмін, Google Робочий простір, Microsoft 365 все піддається IMAP, Отже, провід кожного хмари-провідувача, методи MailReader через EmailImapServic...
Подавати вбудований зображення MIME частин та поверхні метаданих Content-ID
Рендер <img src="cid:..."> в повідомленнях УІ, випромінюючи вхідні частини посилання на HTML. - ПристосуванняInfo отримує вмістІд (без кутових кронштейнів) і в...
Збережіть оригінальне ім'я файлу та тип вмісту для завантаження вкладення
The*************************************************************************************************************************************************************...
Сфера конфеденції для побудови робочих місць, не Kubernetes розгортається
Конвактивна робота на рівні всіх трубопроводів (в тому числі kubectl прокатки. Перемістити групу в роботу тільки так, щоб розгортати робочі місця з різних куточ...
Sync членів.email при призначенні первинної поштової скриньки або видаленні
Коли поштова скринька була призначена для члена KAMO MAIL org, членів.email ніколи не було оновлено, викликаючи електронну поштуCredentialService, щоб не виріши...
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...
Handle IMAPInputStream в getMessage для запобігання ClassCastException
JavaMail може повернути IMAPInputStream замість декодованого String part.getContent() при вмісті повідомлення не було попередньо фіксовано. Про нас прямо (Strin...
Використовуйте getHasAttachments() щоб відповідати типу обгортки Boolean
****** є Boolean (ваппер), так Ломбок генерує getHasAttachments() не єHasAttachments(). Останні тільки існує для примітивного булеана. Використовуйте Boolean.TR...
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...
Підтримка наданого надавача
Додавання відAddressRequest до електронної поштиSendRequest, так що фронтенд може вказати яку адресу електронної пошти та адресу електронної пошти для відправки...
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...
Add com.kamo.z.shared.commerce to EnableJpaRepositories scan
**************** (required by **************** in the shared library) lives under com.kamo.z.shared.commerce but was not included in the JPA repository scan, ca...
Коректне ім'я поля та тип в GetFromAddresses відповідь
Backend було відправлено 'email' ключ, але передній очікуваний 'address', і відправлений тип 'shared mailbox' при передній очікуванні 'shared'. Також фіксує has...
Падіння назад до org domains при відсутності електронної пошти provider domains за замовчуванням
KamoMailDomainValidator був важкодоступний з 403 для orgs, які мають DNS-перевірений домен в org domains, але ніколи не додано його в електронну пошту реєстр до...
Реконструкція для оновлення камо-шаред-ліберта (попередня організаціяТип, дода верховенство)
Зворотній зв'язокДо зміни - smtpService.send приймає вкладення не відповідьTo
Пройдіть відповідьЗа допомогою SMTP відправити замість того, щоб відкинути його
Провідування фільтра стану та автоматичного використання необхідних шаблонів у списку
- EmailTemplateController.list() Тепер приймає ?status= param і фільтри за допомогою існуючої пошукової запити ByOrgIdAndStatus - Автозапчастини потрібні шаблон...
Додати адміністратора домену KamoMail для блокування адрес електронної пошти
Introduces KamoMailDomainValidator компонент, який перевіряє, на шарі сервісу, будь ласка, подані домени електронної пошти відповідає перевірці домену org коли ...
Перебудувати для kamo-shared-library update (CREATE CHILD ORG right + застосувати прапорці)
Витрачає новий RoleRightType.CREATE CHILD ORG (id 131), три застосункові прапори на ChildOrgSecurityModel, два перевантажень 13-arg, а також помічників творця-т...
Відновлення для kamo-shared-library оновлення (appConfig upsert-only fix)
Pulls the загартоване ******************************************************************************************************************************************...
Rebuild for kamo-shared-library update (effective-feature resolver)
Picks up the new AppliedModelEnforcementService methods (computeAvailabilitiesMap, isAppEffectivelyEnabled, getEffectivelyEnabledAppTypes, computeEffectiveFeatu...
Rebuild for kamo-shared-library update (applied-model enforcement + appConfigs + isPrivate)
Triggers a rebuild so this service pulls the updated kamo-shared-library containing AppliedModelEnforcementService, ChildOrgSecurityModelAppConfig entity, Servi...
Rebuild for kamo-shared-library update (runtime force rules + DEFAULT fallback in MemberRightsAppliedService)
Triggers a rebuild so this service picks up the updated **************** that applies template force rules and DEFAULT-template fallbacks on top of the existing...
Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)
Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...
Preview uses same auto-vars as sendToUser (org logo + name)
The preview endpoint now injects logoUrl, logoSimpleUrl, and orgName from the org's domain before applying sample content variables, matching the exact variable...
Auto-inject logoUrl, logoSimpleUrl, and orgName variables at send time
EmailTemplateService now merges base variables (logoUrl, logoSimpleUrl, orgName) derived from the org's primary domain before rendering, so all transactional te...
Add resetCode to password reset email, add emailVerifyByCode endpoint, send WELCOME_MEMBER after email verification
Update EMAIL_VERIFICATION sample vars to match current template
Use expiryText instead of expiryMinutes (renamed variable), and update verifyLink to point to the register subdomain (correct send path).
Preserve DB domain case in NoReply from address
Removed toLowerCase() — the domain already comes from resolvePrimaryDomain which reads org_domains from the database, so case is canonical from DB.
Resolve root domain for NoReply from-address instead of bare subdomain
resolvePrimaryDomain() was returning the first domain entry (e.g. "www") which produced NoReply@www. Now prefers root domains (parent == null) so transactional ...
Add internal.auth.secret to EmailService configmap
InternalAuthFilter was rejecting all service-to-service calls (send, seed-org) with 503 because internal.auth.secret was unconfigured. Matches the same INTERNAL...
Allow transactional send on port-25 relay and auto-seed missing templates
Port-25 SMTP (postfix) requires no auth — transactionalCredentials() was throwing ProviderUnavailableException when user/pass were unconfigured, blocking all ve...
Add dao.repositories to JPA scan so EmailTemplateRepository is found
Same pattern as KamoInitializerService — explicit basePackages overrides default scanning and must include every package that has repositories.
Add EmailTemplateCategoryController REST endpoints
**************** CRUD. Delete response includes reassignedCount — the number of templates that became uncategorized as a result of removing the category. Sessio...
Add EmailTemplateController REST endpoints + DTOs
Exposes /api/email/templates/* CRUD + preview + duplicate + reset-to-default + service-to-service /send + /seed-org/{orgId}. Top-level orgs (no parent) addition...
Add InternalAuthFilter for service-to-service endpoints
Validates X-Internal-Auth header on /api/email/templates/send and /api/email/templates/seed-org/* paths. Other paths bypass this filter (user session auth handl...
Додати e-mailTemplateCategoryService — CRUD для категорій org-scoped
Унікальність унікальності для об'єктів, що використовуються в сервісному шарі (зменшує частковий унікальний індекс в ДБ). Сортування nulls категорії id на ураже...
Як ви бачите відправлення?
Кожен з цих оновлень землі в робочому просторі автоматично. Почати вільний час і дивитися його на тиждень після тижня.