Logotipo de org de Inline-CID (SVG--PNG) para que lo render se hace en Gmail; eliminar contenido de mensajes; preserve caso De-domain
- FIX (seguridad): los correos electrónicos de notificación no llevan ningún cuerpo de mensaje. mensajePreview de plantilla vars, libro mayor, muestras y la c...
Variables de muestra del editor para plantillas de notificación de mensajes perdidos
Avance de las muestras para MISSED-CHAT-MESSAGE y SUPPORT-TICKET-REPLY incl. raw vs Variantes de remitente/título html-escapado por los cuerpos canónicos.
Correo de Microsoft 365 a través de Microsoft Graph solo para aplicaciones (configuración cero por correo)
Microsoft 365 correo ahora lee/enmascaramiento a través de Microsoft Graph solo a la aplicación (Mail.ReadWrite/Mail.Enviar permisos de solicitud) en lugar de I...
Reconstruir para la plantilla canónica compartida de LOAN-STATUS-UPDATE (9fab88c)
Reconstruir para recoger la plantilla canónica de LOAN-DOCS-READY-LO (combida-lib)
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...
Route correo de todos los proveedores de la nube a través de IMAP/SMTP con OAuth2 (XOAUTH2)
Proveedores de la nube (Microsoft 365, Exchange Online, Google Workspace, Zoho, IceWarp) lectura/enviaje heredado de **************** pero el resolver nunca Peb...
Consentimiento del lado del servidor "mostrar imágenes externas"
Sustituye al cliente-local (localStorage) recordando la elección de imagen externa con un registro duradero por miembro. Nuevo RemoteImageConsentService (fall-s...
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 ...
Vars de muestra para la vista previa de la plantilla de reuniones-resumario
Añade una muestraCasos de Variables para la nueva plantilla de reuniones-resumen para que el mayordomo vista previa UI hace contenido realista.
endo interno para crear/cancelar el evento de calendario de un miembro
POST /api/internal/calendar/eventos (X-Internal-Auth gated) resuelve miembro - . usuario - calendario primario (creando un valor predeterminado si es necesario)...
Redirija pública fija . gateway-warded callback
El correo electrónico de la plataforma OAuth (Microsoft 365 / Google / Zoho) no tenía público válido redireccionar URI: la redirección se derivaba del host de s...
Reconstruir contra compartido-lib cerrado (mlos.intake frijoles ahora opt-in; arregla CrashLoop)
Las variables de la muestra de vista previa de DOC-REQUEST/DOC-REJECTED
Wire mlos-internal-auth (INTERNAL-AUTH-SECRET) en el despliegue [salquimo]
EmailService's InternalAuthFilter guards /api/email/templates/send interno.auth.secret, que no se ensecó (fallecido 503). Compartir la actual valor de producció...
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...
Cambios para añadir soporte de contraseña de cambio a los perfiles de cuenta
Cuentas de correo autocuracada de la aplicación DB (recuperación de deriva)
La aplicación DB es la fuente de la verdad para la que deberían existir buzones; KamoMail cuentas en vivo en los usuarios virtuales del servidor de correo. Si e...
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 ****************...
Migrar a k1m1 (clone.registry.kubeconfig de k1m1, got k2m1, simple kubectl install)
Reconstruir para actualización de la biblioteca compartida de kamo (escásares de señalización de plantillas de correo electrónico)
Recopila las nuevas plantillas canónicas esign.signer.verificación esign.signer.invite para que la semillaForOrg pueda semilla en el primer envío.
Bump para la biblioteca compartida de kamo 1.5.0 instantánea refrescar (calteco de programas M2)
Wire DomainManager y MailboxProvisioner para todos los proveedores de la nube
Reemplace los latas de excepción no soportados en cada proveedor de nubes con HTTP llama verdaderas contra la API de administración de cada backend: - Microsof...
Enviaje, carpeta y búsqueda de troquetas de nubes IMAP/SMTP-resta.
Extraer el patrón de delegación IMAP/SMTP en AbstractImapBackedCloudProvider y haz ampliar Zoho, IceWarp, Exchange, Google Workspace y Microsoft 365 - Sí. La cl...
MailReader, respaldado por IMAP, para los talas de proveedores de nubes
Zoho, IceWarp, Exchange, Google Workspace y Microsoft 365 exponen a IMAP, así cablea los métodos MailReader de cada proveedor de la nube a través de EmailImapSe...
Servir de imagen enline piezas MIME y metadatos de superficie Content-ID
Render .img src="cid:"... en los mensajes de la interfaz de usuario exponiendo las partes en línea que el cuerpo HTML hace referencia. - AttachmentInfo gana co...
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...
Alcance de la concurrencia para construir empleos, no los Kubernetes se despliega
La concurrencia a nivel de flujo de trabajo serializó toda la tubería (incluyendo kubectl despliegues). Mueve al grupo al trabajo de construcción sólo para desp...
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...
Redistribuyización desenlaga para la actualización de la biblioteca compartida
Redistribuyización desenlaga para la actualización de la biblioteca compartida
Redistribuyización desenlaga para la actualización de la biblioteca compartida
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...
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.