Wire mlos-internal-auth (INTERNAL AUTH SECRET) in distribuzione [skip ci]
EmailService's InternalAuthFilter guards /api/email/templates/send + /seed-org on interno.auth.secret, che era unset (chiuso 503). Condividi l'esistente valore ...
Ritorno 422 (non 500) quando il membro non ha casella di posta
elencoPiù vecchi e altri endpoint leggiti hanno lanciato IllegalStateException da MailContext.toMailCredentials() quando un membro non aveva credenziali IMAP fo...
Non salvare transazionale NoReply invia ad una cartella Invia
NoReply è un indirizzo solo invio senza casella di posta, ma ogni transazione inviare ancora tentato un append IMAP alla sua cartella Sent, producendo un rumoro...
Modifiche per aggiungere il supporto di password di cambiamento ai profili di account
Conti di casella di posta self-heal da app DB (ricupero del motore)
L'app DB è la fonte della verità per la quale dovrebbero esistere le caselle di posta; KamoMail account in diretta negli utenti virtual user del server di posta...
Mailbox list API restituisce l'interfaccia utente
GET /api/email/mailboxs ha restituito l'entità grezza (providerStatus, lastSyncedAt, nessun conteggio dei membri). Le impostazioni dell'UI leggono... lo stato e...
Autorizzare l'accesso alla casella di posta privilegiata per leggere + send-as
risolvereForMailbox ha concesso solo l'accesso tramite un'assegnazione diretta MemberMailbox, Quindi le cassette postali sono in superficie. NoSuchElementExcept...
Migra a k1m1 (clone+registry+kubeconfig da k1m1, drop k2m1, semplice installazione kubectl)
Ricostruisci per l'aggiornamento delle librerie kamo-shared (esign signer email templates)
Raccoglie i nuovi modelli canonici esign.signer verification + esign.signer invite in modo che semeForOrg può semerli prima di inviare.
Bump for kamo-shared-library 1.5.0 snapshot aggiornamento (catalogo programmi M2)
Wire DomainManager e MailboxProvisioner per tutti i fornitori di cloud
Sostituire le stubs UnsupportedOperationException in ogni provider cloud con vere chiamate HTTP contro ogni API di amministrazione di backend: - Microsoft 365 ...
IMAP/SMTP-backed send, folder, and search for cloud stubs
Estrarre il modello di delegazione IMAP/SMTP in AbstractImapBackedCloudProvider e hanno Zoho, IceWarp, Exchange, Google Workspace, e Microsoft 365 estendere Ecc...
IMAP-backed MailReader per il cloud-provider stubs
Zoho, IceWarp, Exchange, Google Workspace, e Microsoft 365 tutti espongono IMAP, quindi collegare i metodi MailReader di ogni cloud-provider tramite EmailImapSe...
Serve l'immagine inline MIME parti e la superficie
Render <img src="cid:..."> nei messaggi UI esponendo le parti in linea che i riferimenti del corpo HTML. - AttachmentInfo ottiene il contenutoId (senza staffe ...
Conservare il nome del file originale e il tipo di contenuto sul download dell'allegato
I punti finali (entrambi i punti personali) e controller di posta elettronica condivisa) emettono Contenuto-Disposizione: allegato con nessun parametro nome fil...
Capacità di costruire posti di lavoro, non Kubernetes schiera
Convalutazione del flusso di lavoro serializzata l'intero gasdotto (compreso il kubectl rollout). Spostare il gruppo al lavoro di costruzione solo in modo da di...
Sincronizza i membri.email quando la casella di posta primaria viene assegnata, modificata o rimossa
Quando una casella di posta è stata assegnata a un membro in un org KAMO MAIL, i membri.email non è mai stato aggiornato, inducendo EmailCredentialService a non...
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...
Maniglia IMAPInputStream in getMessage per evitare ClassCastException
JavaMail può restituire un IMAPInputStream invece di uno String decodificato da part.getContent() quando il contenuto del messaggio non è stato pre-fetched. The...
Utilizzare getHasAttachments() per abbinare il tipo di wrapper Boolean
E' un Boolean, quindi Lombok. genera getHasAttachments() non èHasAttachments(). Quest'ultimo solo esiste per il booleano primitivo. Utilizzare Boolean.TRUE.equa...
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...
Supporto daAddress override on send
Aggiunge FromAddressRequest a EmailSendRequest in modo che il frontend possa specificare alias/shared/mailbox indirizzo da inviare. SmtpOnlyProvider ora usa que...
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...
Ripiegare a org domains quando nessun set predefinito di email provider domains
KamoMailDomainValidator è stato indurito con 403 per org che hanno un DNS-verified domain in org domains ma mai aggiunto all'e-mail registro di dominio del forn...
Ricostruisci per l'aggiornamento delle librerie kamo-shared (rimuovi l'OrganizzazioneTipo, aggiungi isTopLevel)
Filifica il filtro di stato e i modelli richiesti automaticamente nell'elenco
- EmailTemplateController.list() ora accetta ?status= param e filtri utilizzando la query del repository di findByOrgIdAndStatus esistente - Auto-seeds modelli ...
Aggiungere il validatore di dominio KamoMail per bloccare gli indirizzi email cross-tenant
Introduce il componente KamoMailDomainValidator che controlla, a livello di servizio, se il dominio email inviato corrisponde al dominio predefinito verificato ...
Ricostruisci per l'aggiornamento di kamo-shared-library (CREATE CHILD ORG right + app-to flags)
Tira il nuovo RoleRightType.CREATE CHILD ORG (id 131), le tre bandiere applicate su ChildOrgSecurityModel, i due sovraccarichi di servizio 13-arg e gli helper d...
Ricostruisci per l'aggiornamento di kamo-shared-library (appConfig upsert-only fix)
Tira l'indurito ******************************************************************************** che non cancella più le righe appConfig i cui tipi di servizio ...
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...
Come quello che vedi la spedizione?
Tutto questo arriva nel vostro spazio di lavoro da solo. Iniziare sul piano gratuito e leggere di nuovo questa pagina in un mese.
