Administración de Mailbox se hace a la derecha, y tres endpoints consiguen una sesión
MailboxController no hizo ningún derecho. MANAGE-EMAIL-ACCOUNTS existió sólo como una checkRight in the browser and VIEW-EMAIL-ACCOUNTS se hizo referencia en ni...
Cada endpoint de contacto toma el verbo que lo nombra
ContactRestController controló cuidadosamente la propiedad de orgOf, userOf, assertBookIsMine, afirmarGroupIsMine, y 404 en lugar de 403 para que el id de otra ...
Pon una devolución de llamada en un calendario que el miembro puede ver
Los retrocesos no estaban llegando en absoluto al calendario. Este servicio eligió el objetivo calendario por cuenta de findPrimaryByUser y un usuario es global...
Detengan los sobres reclamando una respuesta de consentimiento que nadie pidió
RemoteImagesSoportado era un booleano primitivo, y sólo los tres puntos finales que Trae un mensaje entero alguna vez asignándolo. La lista de la carpeta no res...
Haz recordatorios de eventos realmente notifican a alguien
Tres faltas, un síntoma. Los miembros informaron de que las notificaciones del calendario no trabajo, y las tres razones estaban de este lado. Los recordatorio...
Regi Regi iza las tres banderas IMAP, y di por qué el índice no puede servir todavía a una lista
La migración ha funcionado, por lo que existe y SearchIndexService ahora escribe junto a ella está listo y está. El índice ha registrado dos de los tres bandera...
No lea ni escriba es desrrestado antes de que su columna exista
Sigue el cambio de la biblioteca compartida descomerpando el campo. Nada en el desplegado El camino ahora toca una columna que KamoInitializer aún no ha creado....
Deja de filtrar una conexión IMAP IDLE en cada navegador de reconexión
Interrumpar el hilo IDLE no puede terminar con un IDLE: está estacionado en un bloqueo leer que sólo ve la bandera una vez que la lectura vuelve por su cuenta, ...
La mitad de origen de 1b3553f, que sólo cometió sus pruebas
1b3553f organizó sus dos nuevos archivos de prueba y nada más, por lo que aterrizó afirmando un nullable FolderManager.setBanderas que aún no existían y no pued...
Deja de sobrescribir una bandera IMAP sin nombre
Las banderas IMAP son independientes, así que "marca esta lectura" no debe decir nada sobre la estrella. EmailImapService.setFlags siempre ha tomado booleans nu...
Deja de enviar una credencial compartida como un defecto de configuración
La contraseña compartida de la plataforma fue horneada como la caída para DB-PASSWORD y MINIO-ROOT-PASSWORD, por lo que vivió en este repo y en la imagen constr...
Toma el llamante de la sesión, no de la cuerda de consulta
GET /api/calendar/calendars tomó usuarioId como parámetro de solicitud, cambiando así que cambiando a number en la URL leía los calendarios de cualquiera y porq...
Haz que MKCOL cree un libro que realmente se puede almacenar
mkCol construyó un ContactBook que no llevaba ni una organización ni un propietario y devolvió 201 a pesar de todo, por lo que crear una libreta de direcciones ...
SQL solo de CockroachDB que rechaza PostgreSQL
CockroachDB deletrea el tipo de texto STRING; PostgreSQL y YugabyteDB usan TEXT. 25 yesos a través de consultas nativas seguían emitiendo CAST(x AS STRING) y ::...
Libres de direcciones de alcance al miembro que las posee
Los contactos fueron objeto de contacto solo por la organización. listBooks (orgId) fue findByOrganizationId(orgId), y la lista de contactos abierta WHERE c.con...
Publicar ids de fila como cuerdas de un nuevo libro 404'd el momento en que lo seleccionó
CockroachDB unique-rowid() produce ids de 64 bits. Una de verdad de contacto. 1200081912680906758; JSON.parse de JavaScript redondea cualquier cosa pasada Numbe...
Graba tamaños de mensaje en lugar de escribir cero
SearchIndexService escribió tallaBytes = 0 por cada mensaje que haya indexado, bajo el comentario "No disponible en el sobre". Estaba disponible. El perfil simp...
Restaurar los archivos 2b23346 caída, y responder un sobredimeno envío con 413
2b23346 se comprometió a través de un índice privado que nunca fue semilla de HEAD, por lo que su árbol tenía sólo los tres archivos escenificados en él y el co...
Deja de tapar cada envío a 1MB, para que una imagen pegara puede salir apagado.
Compuesto con una imagen pegara fracasó con un desnudo "Finado a enviar correo electrónico". El compositor enline la pasta en el cuerpo HTML como base64 data UR...
Detenga Hibernate desgarrando el ":": lanza en el SQL nativo
El analizador nativo de Hibernate trata "::" como un colon escapado y reenvía a single ":". Recibe cuckroachDB **************** ARRAY[]:text[]), ') y lo rec...
Sigue retrasando al consumidor NATS duradero del indexador tras un despliegue
Un despliegue rodado se superpone a las cápsulas y la saliente todavía mantiene el duradero consumidor, por lo que el vínculo de la cápsula entrante al "íjeto-m...
Adaptar los indexadores de metadatos a columnas tipo array
Sigue el cambio de biblioteca compartida de kamo que mapea conversaciones/buscadosindex columnas como cuerda[]/UUID[] en lugar de Lista, que es lo que se detuvo...
Enjala el índice de carpetas de granel y deténlo en fallo estructural
Trabajo no comprometido de una sesión simultánea, barrido para que el árbol esté limpio. El índice de granel caminaba páginas con totalPages configurado a Inte...
Nunca iguales una ventaja contra las propias direcciones de la compañía
Una pista cuyo e-mail estaba configurado a Noreply-kamocrm.com coincidía con cada mensaje que La dirección había enviado un récord de salida de la compañía. str...
Página el barrido de plomo hasta que la ventana esté cubierta
Una sola página fija perdió silenciosamente el correo cuando un buzón tomaba más de páginaTamaño mensajes entre garrafas de garrafas de newsletter, una bandeja ...
las respuestas a las direcciones en Responder-To y deje de filtraciones de las excepciones SMTP a la interfaz de usuario
Una respuesta rápida a una notificación de KamoCRM fracasó con "error":"Diregida inválida". renderizados literalmente en el recuadro de respuesta. Esa cuerda es...
Deja de clasificar una raíz HTML multiparte/relacionada como adjunto
Cada correo electrónico transaccional que enviamos con un logotipo de orglined llegó en nuestro propio Visor /mensaje con un sujeto correcto y un cuerpo complet...
Escanear los repositorios compartidos de MFA
MfaEnrollmentService es un servicio en la biblioteca compartida de kamo, por lo que el comodín ComponentScan (com.kamo") en esta aplicación la construye, indepe...
Fuge duplica la tecla kamo que chocaba EmailService
La nueva cápsula EmailService ha estado en CrashLoopBackOff desde 16e8a05 22 reinicios, Nunca comenzó. snakeyaml levanta DuplicateKeyException en un nivel super...
Apreciar la descarga de kubectl contra egress escamosas [sillar ci]
dl.k8s.io sobre la egresación del corredor deja caer intermitentemente la transferencia intermedia: rl: (56) OpenSSL SSL-read: descifrado o mal registro mac q...
Añadir la campaña faltaController de endpoints REST para /api/email/campañas
El espacio de trabajo/editor de correo electrónico a granel llamada GET/POST /api/email/campañas, etc., pero solamente CampaignService (el servicio de servicio)...
Eliminar ambiguo petición de susucribaMatcher que se estrelló en startup
EmailService monta dos servlets (MVC DispatcherServlet - Spring-WS MensajeDispatcherServlet en /services/*, por lo que una petición de cuerda desnudaMatchers (S...
Deja de serializar xoauth2 que roció MailCentials Redis cache
MailCredentials se cached in Redis (GenericJackson2Json). El añadido "isXoauth2"() El gotero boolean serializado como una propiedad "xoauth2" pero no tiene camp...
Scope La lista de buzón/dominio de KamoMail a los propios dominios de la org (filtración de inquilinos cruzados)
SEGURIDAD: **************** ejecutar 'SELECT email FROM virtual-users' (and **************** 'SELECT name FROM virtual-domains') sin org soping, así que buzón/d...
Persist seleccionó a proveedor de OAuth en la llamada de la llamada para que dejara de volver a KamoMail
Cambiar un org a Microsoft 365 (o Google Workspace / Zoho) nunca se atascó: el callback de OAuth almacenaba fichas y sólo volteaba el estado en una fila de prov...
Resolve logo de bienvenida-email del anfitrión temático de org, no el ápice
Los logotipos de encabezado/footer en los correos electrónicos del sistema (bienvenido/verificación) fueron construidos como ******************* un camino de áp...
Comparación secreta de constante tiempo interno-auth (oráculo de tiempo constante)
Reemplazar String.equals con MessageDigest.isEqual so response latency no puede filtrara el X-Internal-Auth compartió secreto byte-byte. barrido de flota de la ...
Devolución 422 (no 500) cuando el miembro no tiene buzón
listFolders y otros endpoints de lectura arrojaron ilegalmenteStateException desde MailContext.toMailCredentials () cuando un miembro no tenía credenciales IMAP...
No salve el transaccional NoReply envía a una carpeta enviada
NoReply es una dirección de envío sin buzón, pero cada transacción enviar todavía intentar un apéndice de IMAP a su carpeta enviada, produciendo un ruidoso Avis...
Lista de correo API devuelve UI en forma de UI *******************
GET /api/email/mailboxes devolvió la entidad en bruto (providerStatus, lastSyncedAt, sin conteo de miembros). La configuración de interfaz de usuario lee ******...
Autorizar el acceso a buzón basado en privilegios para leer
resoluciónParaMailbox solo se concedió el acceso a través de una asignación directa de MemberMailbox, así que los buzones surgieron a través de ****************...
Preservar el nombre de archivo y el tipo de contenido original en la descarga de la fijación
Los endpoints ************* (ambos lo personal y los controladores de correo electrónico compartido) estaban emitiendo Contenido-Disposición: adjunto sin paráme...
Sincronización de miembros.email cuando el buzón primario se asigna, cambia, o elimina
Cuando un buzón fue asignado a un miembro en un KAMO-MAIL org, members.email nunca se actualizó, lo que provocó que EmailCredentialService no resarca la resoluc...
Marca-leer para buzones compartidos y miembros
EmailController.setFlags ahora acepta un buzón opcionalId consulta param y Rutas a través de resoluciónProviderWithMailbox para que se configuran banderas de bu...
Maneje IMAPInputStream en getMessage para prevenir ClassCastException
JavaMail puede devolver un IMAPInputStream en lugar de una cuerda decodificada de la part.getContent() cuando el contenido del mensaje no ha sido preaver. El lo...
Utilícese getHasAttachments() para que coinpare tipo envoltorio booleano
************* es un Boolean (enero), así que Lombok genera getHasAttachments() no esHasAttachments(). Estos últimos sólo existe para booleano primitivo. Utilíce...
Restarce halagos despreciablesEn sincronización y acumularse correctamente
- Restablecer has.attachments=false al comienzo de la sincronización a granel por lo que los valores reales rane de vieja detección de mal positivo MIME se de...
Soporte deAddress anúnse en envío
Añade FromAddressSquest a EmailSendSpedido para que el frontend pueda especificar que alias/comb compartidos/mailbox dirección para enviar. SmtpOnlyProvider aho...
Arreglas de fijación de acceso y haAttachment falsos positivos
Tres correcciones para EmailImapService: 1. a Envelope: control multiparte estrecho a multipartes/sólo mezclado . Los correos electrónicos HTML-text (multip...
Añadir com.kamo.z.shared.commerce a EnableJpaRepositorios escaneo
**************** (requerido por **************** en la biblioteca compartida) vive bajo com.kamo.z.shared.commerce, pero no incluido en el escaneo del repositor...
Como lo que ves enviaste?
Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.