Parar Hibernate manipulando os moldes "::" no SQL nativo
O analisador de perguntas nativas de Hibernate trata "::" como um cólon escapado e avança um single ":". BarataDB recebida ****************************:texto[]...
Continue tentando novamente o consumidor de NATS durável do indexador após uma implantação
Um implante de rolamento sobrepõe pods e o de saída ainda mantém o durável consumidor, então o pod de entrada se liga ao "email-metadata-indexer" falha com [SUB...
Adaptar os indexadores de metadados às colunas tipo array
Segue a mudança kamo-shared-library que mapeia conversas/pesquisa index colunas de array como String[]/UUID[] em vez de List<T>, que foi o que parou todas as me...
Limite o índice da pasta em massa e pare- o na falha estrutural
Trabalho não comprometido de uma sessão concorrente, varrido para que a árvore esteja limpa. O índice de volume percorreu páginas com totalPaginas definidas pa...
Nunca combine uma pista com os endereços da empresa
Um lead cujo e-mail foi definido para noreply@kamocrm.com corresponde a cada mensagem que endereço já enviado — um registro de chumbo apareceu em toda a saída d...
Página a varredura de chumbo até que a janela esteja coberta
Uma única página fixa, silenciosamente perdida, sempre que uma caixa de correio levava mais do que páginaTamanho de mensagens entre ticks — um burst de newslett...
Respostas de endereço no Reply-To, e pare de vazar exceções SMTP para a UI
Uma resposta rápida a uma notificação KamoCRM falhou com `{"error":"Endereços Inválidos"}` verbatim na caixa de resposta. Essa string é o texto de Jakarta Mail ...
Parar de classificar uma raiz HTML multiparte/relacionada como um anexo
Cada e-mail transacional que enviamos com um logotipo org inlined chegou em nosso próprio /mensages visualizador com um assunto correto e um corpo completamente...
Digitalizar os repositórios MFA partilhados
O MfaEnrollmentService é um @Service na biblioteca compartilhada com kamo, então o wildcard @ComponentScan("com.kamo") nesta aplicação constrói-se isto ou não s...
Mesclar chave kamo duplicada que estoirou o EmailService
O novo módulo EmailService está no CrashLoopBackOff desde 16e8a05 — 22 reinicia, Nunca começou. Snakeyaml levanta DuplicateKeyException em um nível superior rep...
Endureça o download do kubectl contra a saída flácida [skip ci]
dl.k8s.io sobre a saída do corredor diminui intermitentemente no meio da transferência: curl: (56) OpenSSL SSL read: a descriptografia falhou ou o mac de regist...
Adicionar os endpoints do CampaignController REST em falta para /api/email/campaigns
O espaço de trabalho/editor GET/POST /api/email/campaigns etc., mas apenas O CampaignService (o @Service) já foi criado — nenhum @RestController o expôs, Então ...
Remover pedido de cancelamento ambíguoMatcher que estoirou a inicialização
EmailService monta dois servlets (MVC DispatcherServlet + Spring-WS MessageDispatcherServlet em /services/*), então uma requisição de texto nuaMatchers( "/api/e...
Parar a serialização do xoauth2 que quebrou o cache MailCredentials Redis
MailCredentials está em cache em Redis (GenericJackson2Json). A adição `isXoauth2()` boolean getter foi serializado como uma propriedade "xoauth2", mas não tem ...
Escopo KamoMail caixa de correio/domínio listando para os próprios domínios do org (fuga de ativos)
Segurança: **************** stream 'SELECT email from virtual users' (e ****************************************************************************************...
Persistir o provedor selecionado de OAuth no callback para que ele pare de reverter para KamoMail
Alternando uma org para Microsoft 365 (ou Google Workspace / Zoho) nunca ficou preso: o callback OAuth armazenava tokens e só inverteu o status em uma linha de ...
Resolver o logótipo de boas- vindas- e- mail da máquina de temas org, não o ápice
Logotipos de cabeçalho/footer em emails de sistema (bem-vindos/verificação) foram construídos como **************** um caminho de ápice que só existe no Kamo si...
Comparação secreta de tempo constante (oráculo de chegada)
Substituir String.equals com MessageDigest.isIqual para que a latência da resposta não possa Vazamento do X-Internal-Auth compartilhado byte-by-byte. Varredura ...
Devolver 422 (não 500) quando o membro não tiver caixa de correio
listFolders e outros terminais de leitura jogaram IlegalStateException de MailContext.toMailCredentials() quando um membro não tinha credenciais IMAP Providenci...
Não salvar NoReply transacional envia para uma pasta Enviada
NoReply é um endereço somente de envio sem caixa de correio, mas todas as transações enviar ainda uma tentativa de IMAP anexar à sua pasta Enviada, produzindo u...
A API da lista de caixas de correio devolve a forma de UI
GET /api/email/mailboxes devolveu a entidade bruta (fornecedorStatus, lastSyncedAt, sem contagem de membros). As definições da IU lêem... status era sempre inde...
Autorizar o acesso de correio baseado em privilégios para leitura + envio-como
solutionForMailbox só concedeu acesso através de uma atribuição direta do MemberMailbox, Então, as caixas de correio apareceram através de direitos jogaram NoSu...
Preservar o nome do ficheiro original e o tipo de conteúdo no download do anexo
O ****************es finais (ambos o pessoal e controladores de caixa de correio compartilhado) estavam emitindo Disposição de Conteúdo: anexo sem parâmetro do ...
Sincronize members.email quando a caixa de correio primária é atribuída, alterada ou removida
Quando uma caixa de correio foi atribuída a um membro em uma org KAMO MAIL, members.email nunca foi actualizado, fazendo com que o EmailCredentialService não re...
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...
Lidar com IMAPInputStream no getMessage para evitar ClassCastException
JavaMail pode retornar um IMAPInputStream em vez de uma string decodificada de part.getContent() quando o conteúdo da mensagem não foi pré-fetched. A moldes dir...
Use getHasAttachments () para corresponder ao tipo de invólucro booleano
************* é um booleano (embrulhador), então Lombok gera getHasAttachments() não isHasAttachments(). Apenas este último existe para booleanos primitivos. Us...
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...
Suporte a partir do cancelamento do endereço ao enviar
Adds FromAddressRequest to EmailSendRequest so the frontend can especifique Apelido/compartilhado/endereço da caixa de correio a enviar. SmtpOnlyProvider agora ...
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...
Recuar para org domínios quando nenhum e-mail provider domínios definido padrão
KamoMailDomainValidator foi duro-falhando com 403 para orgs que têm um Domínio verificado pelo DNS no domínio org mas nunca o adicionou ao e-mail Registo de do...
Reverter respostaPara alterar — smtpService.send toma anexos não respondeTo
Ligar o filtro de estado e os modelos necessários automaticamente na lista
- EmailTemplateController.list() agora aceita ?status= param e filtros usando a pesquisa existente do repositório findByOrgIdAndStatus - Auto-sementes necessári...
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...
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.
Renomear caixa de correioId→id e provedorStatus→status in mailbox list response
Alinhar nomes de campos com expectativas de frontend para listas de correio de membros.
Support mailbox switching by resolving IMAP credentials per mailboxId
Added getMailCredentialsByEmail to look up virtual_users by email directly, resolveForMailbox to MailProviderResolver with access verification, and optional mai...
Rename DomainService to EmailDomainService to resolve bean name conflict
The shared library's DomainService and EmailService's local DomainService both registered as 'domainService' bean, causing CrashLoopBackOff on deploy.
Correct method signatures in DomainController and MailboxController
- Fix getMemberMailboxes -> getMailboxesForMember in MailboxController - Add missing memberId parameter to getVerificationRecords and verifyDomain in DomainCont...
Extract BCC recipients from IMAP messages
BCC header is retained on sent folder copies. Now extracted alongside To and CC so the frontend can display it in sent item previews.
Provider GET returns both type and providerType, PUT accepts both
GET /api/email/provider now includes both 'type' and 'providerType' fields in the response for frontend compatibility. PUT now accepts 'type' as a fallback when...
Como o que vês no transporte?
Tudo isso chega em seu espaço de trabalho por conta própria. Comece no plano gratuito e leia esta página novamente em um mês.
