Daftar kotak surat API mengembalikan UI-shaped * * * * * * * * * * * * * * * * *
GET / API / Email / kotak surat mengembalikan entitas mentah (providerStatus, LastSyncedAt, tidak ada jumlah anggota). Pengaturan UI berbunyi * * * * * * * * * ...
Otorisasi akses kotak-surat berbasis untuk membaca + send-as
resolveForMailbox hanya memberikan akses melalui penempatan langsung Anggota Mailbox, Jadi kotak surat muncul melalui... Hak melempar NoSuchElement Exception - ...
Migrasi ke k1m1 (clone + registry + kubeconfig dari k1m1, drop k2m1, sederhana kubectl install)
Bangun ulang untuk kamo- shared-library update (esign signaner email templates)
Ambil contoh Canonical yang baru esig.signer _ verification + esign.signer _ invite sehingga SeedForOrg dapat benih mereka pada pengiriman pertama.
Bump untuk kamo- shared-library 1.5.0 snapshot segarkan (katalog program M2)
Wire DomainManager dan MailboxProvisioner untuk semua penyedia awan
Ganti stubs Exception Operation Tak Terduga di setiap penyedia awan dengan real HTTP panggilan terhadap setiap backend 's admin API: - Microsoft 365 Microsoft ...
IMAP / SMTP-backed send, folder, and search for cloud stubs
Ekstrak pola delegasi IMAP / SMTP ke dalam Pengatur AbstractImrapBackedCloudProvider and have Zoho, IceWarp, Exchange, Google Workspace, and Microsoft 365 exten...
IMAP-backed MailReader untuk stub penyedia awan
Zoho, IceWarp, Exchange, Google Workspace, dan Microsoft 365 semua mengekspos IMAP, Jadi kaitkan setiap metode penyedia-awan stub MailReader melalui Layanan Imp...
Layers inline image MIME part and permukaan Content- ID metadata
Render < img src = "cad:"... > dalam pesan UI dengan mengekspos bagian inline bahwa acuan tubuh HTML. - Lampiran Info memperoleh konsentId (tanpa sudut kurung)...
Pertahankan nama berkas asli dan jenis isi pada unduh lampiran
* * * * * * * * * * * * * * * * * titik akhir (kedua pribadi dan shared-mailbox controller) adalah memancarkan Kontent-Disposition: lampiran tanpa parameter nam...
Scope contueces untuk membangun pekerjaan, tidak Kubernetes menyebarkan
Perbaikan tingkat kerja serialisasi seluruh baris pipa (termasuk kubectl peluncuran). Pindahkan kelompok ke pekerjaan membangun saja sehingga menyebarkan pekerj...
Selaraskan keanggotaan surel ketika kotak surat primer diberikan, diubah, atau dihapus
Ketika kotak surat ditugaskan untuk anggota dalam KAMO _ MAIL org, members.email tidak pernah diperbarui, menyebabkan EmailCredentialService gagal untuk menyele...
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...
Menangani IMAPInputStream dalam getMessage untuk mencegah Eksepsi Kelas
JavaMail dapat mengembalikan IMAPInputStream daripada String yang diterjemahkan dari part.getContent () ketika isi pesan belum pernah ada sebelumnya. The straig...
Gunakan getHasAttachments () untuk mencocokkan tipe pembungkus Boolean
* * * * * * * * * * * * * adalah Boolean (wrapper), begitu Lombok menghasilkan getHasAttachments () bukan isHasAttachments (). Yang terakhir saja ada untuk bool...
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...
Dukungan dari override Alamat saat mengirim
Tambahkan FromAddressRequest ke EmailSendRequest sehingga antarmuka dapat menentukan alamat alias / shared / mailbox untuk dikirim. SmtpOnlyProvider sekarang me...
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...
Correct field name and type in getFromAddresses response
Backend was sending 'email' key but frontend expected 'address', and sent type 'shared_mailbox' when frontend expected 'shared'. Also fixes hasMailboxes flag wh...
Fall back to org _ domains when no email _ provider _ domains default set
KamoMasin Validator sulit-gagal dengan 403 untuk orgs yang memiliki domain DNS-verified dalam org _ domains tetapi tidak pernah ditambahkan ke email Registri do...
Bangun ulang untuk kamo- shared-library update (hapus Tipe Organisasi, tambahkan isTolevel)
Revert replyTo change - smtpService.send mengambil lampiran tidak replyTo
Tampilkan filter status dan biji otomatis yang diperlukan dalam daftar
- Email TemplateController.list () sekarang menerima? status = param dan filter menggunakan permintaan repositori FindByOrganidAnStatus - Auto- benih diperlukan...
Tambahkan domain validator KamoMail ke blok alamat surel penghuni
Memperkenalkan Komponen Mailing Validator yang memeriksa, pada lapisan layanan, apakah domain email yang diajukan cocok dengan domain baku yang diverifikasi org...
Bangun ulang untuk kamo- shared-library update (CREATE _ CHILD _ ORG kanan + apply-to flags)
Pull the new RoleRightType.CREATE _ CHILD _ ORG (id 131), the three apply- to flags on ChildOrganm SecurityModel, the two 13- arg service overload, and the Appl...
Bangun ulang untuk kamo- shared-library update (appConfig upsert -only fix)
Pulls the hardest * * * * * * * * * * * * * * * * * * * * * bahwa tidak lagi menghapus baris appConfig yang jenis layanan tidak hadir dari payload penelepon - m...
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...
Tambahkan Email TemplateCategoryService - CRUD untuk kategori org- scoped
Menyebabkan keunikan nama sensitivitas per org dipaksa pada lapisan layanan (Cocok dengan sebagian indeks unik di DB). Penghapusan _ id kategori pada template t...
Seperti apa yang Anda lihat pengiriman?
Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.