Arrêter les enveloppes demandant une réponse de consentement que personne n'a demandé
remoteImagesLage était un booléen primitif, et seulement les trois critères d'évaluation qui Trouvez tout un message qui l'a jamais attribué. La liste des dossi...
Faire en sorte que les rappels d'événements informent quelqu'un
Trois défauts, un symptôme. Les membres ont indiqué que les notifications relatives au calendrier n'étaient pas et les trois raisons étaient de ce côté-ci. Les...
Enregistrer les trois drapeaux IMAP, et dire pourquoi l'index ne peut pas encore servir de liste
La migration a été menée, donc est-il - il y a une réponse et SearchIndexService écrit maintenant À côté de l'objet, il est en face et est en étoile. L'indice a...
Ne pas lire ou écrire est-il répondu avant que sa colonne n'existe
Suivre le changement de bibliothèque partagée dépilant le champ. Rien dans le déploiement Le chemin touche maintenant une colonne que KamoInitializer n'a pas en...
Arrêter de fuir une connexion IMAP IDLE sur chaque reconnecteur de navigateur
Interruption du fil IDLE ne peut pas mettre fin à une IDLE: il est garé dans un blocage socket lire qui ne voit le drapeau que lorsque la lecture revient de lui...
La moitié de la source 1b3553f, qui n'a effectué que ses essais
1b3553f a mis en scène ses deux nouveaux dossiers de test et rien d'autre, donc il a atterri en affirmant un FlevererManager.setFlags qui n'existait pas encore ...
Empêcher l'écrasement d'un drapeau IMAP non nommé
Les drapeaux IMAP sont indépendants, donc "marquez ceci" ne doit rien dire sur l'étoile. EmailImapService.setFlags a toujours pris des booléans nullisables et a...
Arrêter l'expédition d'un justificatif partagé en tant que défaut de configuration
Le mot de passe partagé de la plate-forme a été mis en place en tant que repli pour DB-PASSWORD et MINIO-ROOT-PASSWORD, donc il vivait dans ce repo et dans l'im...
Prenez l'appelant de la session, pas à partir de la chaîne de requête
GET /api/calendar/calendars a pris userId comme paramètre de requête, changeant donc un nombre dans l'URL lire les calendriers de n'importe qui et parce que les...
Faire en sorte que MKCOL crée un livre qui peut effectivement être stocké
mkCol a construit un ContactBook ne portant ni organisation ni propriétaire et retourné 201 indépendamment, donc créer un carnet d'adresses à partir d'un CardDA...
CockroachDB uniquement SQL que PostgreSQL rejette
CockroachDB pare le type de texte STRING; PostgreSQL et YugabyteDB utilisent TEXT. 25 lancers à travers des requêtes natives étaient encore en train d'émettre C...
Carnets d'adresses du membre qui en est propriétaire
Les contacts ont été mis au point par l'organisation. listBooks(orgId) était findByOrganizationId(orgId), et la requête de la liste de contact ouverte Où c.cont...
Publier les ids row as strings - un nouveau livre 404'd le moment où vous l'avez sélectionné
CockroachDB single-rowid() produit des ids 64 bits. Un vrai de la part des carnets de contact est 1200081912680906758; JSON.parse de JavaScript contourne tout p...
Enregistrer la taille des messages au lieu d'écrire zéro
SearchIndexService a écrit tailleBytes 0 pour chaque message qu'il a jamais indexé, sous le commentaire "Non disponible à partir de l'enveloppe". Il était dispo...
Rétablir les fichiers 2b23346 supprimés, et répondre à un envoi surdimensionné avec 413
2b23346 a été engagé par l'intermédiaire d'un index privé qui n'a jamais été classé HEAD, donc son arbre ne contenait que les trois fichiers mis en place et l'e...
Arrêtez de coller chaque envoi à 1MB, donc une image collé peut effectivement sortir
S'établir avec une image collée n'a pas été raté avec une nue "Faibed to send email". Le Compositeur met en ligne la pâte dans le corps HTML en tant qu'URI de d...
Arrêter Hibernate mangarde le "::" moulages dans le SQL natif
L'analyseur syntaxique de la requête native d'hiberné traite ":" comme un colon évadé et vers l'avant a Un single ":". CockroachDB reçu ARRAY:texte, '') et ...
Continuer à essayer à nouveau le consommateur NATS durable de l'indexeur après un déploiement
Un déploiement roulant chevauche les gousses et la dose sortante reste la durabilité le consommateur, donc la liaison de la boîte entrante à "email-metadata-ind...
Adapter les indexeurs de métadonnées aux colonnes de type à des colonnes de type tableau
Suivre le changement de bibliothèque kamo-shared qui cartographie les conversations/recherche-index les colonnes de tableau en tant que chaîne[/UUID au lieu de ...
Limiter l'index de pliage de masse et l'arrêter en cas de défaillance structurelle
Travail non engagé d'une session simultanée, balayé de sorte que l'arbre est propre. L'index de masse a parcouru des pages avec totalPages mises en place à Int...
Ne correspondez jamais à une avance aux adresses de l'entreprise
Une piste dont le courrier électronique a été mis sur le site noreply-kamocrm.com correspondait à chaque message que Une adresse avait déjà été envoyée - un rec...
Pager le balayage de l'avance jusqu'à ce que la fenêtre soit couverte
Une seule page fixe a perdu silencieusement du courrier chaque fois qu'une boîte aux lettres a pris plus de pageSize message entre les tiques - un bulletin d'in...
Réponses à la réponse à l'adresse To et cesser de fuir les exceptions SMTP à l'interface utilisateur
Une réponse rapide à une notification KamoCRM a échoué avec «erreur»: "Invalides Adresses" rendu in extenso dans l'encadré en réponse. Cette corde est la formul...
Arrêter de classer une racine HTML multipartie/dépendante en tant qu'attachement
Chaque e-mail transactionnel que nous envoyons avec un logo d'ordre en ligne est arrivé dans notre propre /messages spectateurs avec un sujet correct et un corp...
Scanner les référentiels partagés de l'AMF
MfaEnrollmentService est un service en kamo-shared-library, donc le caractère joker «ComponentScan("com.kamo") dans cette application le permet ou non Le servic...
Fusionner la clé kamo dupliquée qui crashlooped EmailService
Le nouveau logiciel EmailService est dans CrashLoopBackOff depuis 16e8a05 et 22 redémarrages, n'a jamais commencé. snakeyaml augmente DuplicateKeyException sur ...
Harden the kubectl téléchargement contre la sortie floconneuse [skip ci
dl.k8s.io sur la sortie du coureur chute par intermittence au moyen de transferts: curl: (56) OpenSSL SSL-read: déchiffrement raté ou mauvais enregistrement m...
Ajouter les critères d'évaluation manquants de CampaignController REST pour /api/email/campaigns
L'espace de travail en gros/l'éditeur appelle GET/POST/api/email/campes, etc., mais seulement CampaignService (le « service ») a jamais été créé - non - RestCon...
Supprimer la demande de désabonnement ambiguMatcher qui a écrasé le démarrage
EmailService met en place deux servlets (MVC DispatcherServlet et Spring-WS) MessageDispatcherServlet à /services/-), donc une demande de chaîne nueMatchers ( "...
Arrêter la sérialisation de xoauth2 getter qui cassait MailCredentials Redis cache
MailCredentials est mis en cache dans Redis (GenericJackson2Json). Le texte ajouté 'isXoauth2()' booléen getter a été sérialisé comme une propriété "xoauth2" ma...
Champ d'application KamoMail boîte aux lettres/domaine de la liste des domaines de l'orge (fuite des locataires)
SÉCURITÉ: «SELECT email FROM virtual-users» (et «SELECT name FROM virtual-domains») sans ciblage, de sorte que la synchronisation de la boîte aux lettres e-mail...
Persister le fournisseur OAuth sélectionné sur le rappel de sorte qu'il cesse de revenir à KamoMail
Le passage d'une barre d'appel à Microsoft 365 (ou Google Workspace/zoho) n'est jamais bloqué: le rappel OAuth stocké les jetons et n'a que le statut retourné s...
Résoudre le logo de l'e-mail de bienvenue à partir de l'hôte du thème de l'organisation, et non du sommet
Des logos d'en-tête/pieds dans les e-mails du système (accueil/vérification) ont été construits comme Un chemin de pointe qui n'existe que sur le Kamo site de m...
Comparaison secrète interne-auth à temps constant (oracle de timing)
Remplacer String.equals par MessageDigest.isEqual donc latence de réponse ne peut pas f) L'octet-pare-byte-byte partagé X-Internal-Auth. Agrandir le balayage à ...
Retour 422 (not 500) lorsque le membre n'a pas de boîte aux lettres
ListeFolders et autres critères d'évaluation de lecture ont jeté IllegalStateException à partir de MailContext.toMailCredentials() lorsqu'un membre n'avait pas ...
N'enregistrez pas transactionnelle NoReply sends to a Sent folder
NoReply est une adresse d'envoi uniquement sans boîte aux lettres, mais chaque transactionnelle. envoyer toujours une tentative d'ajout IMAP à son dossier Envoy...
La liste des boîtes aux lettres API retourne en forme d'UI
GET /api/email/mailboxes renvoyés l'entité brute (prestatut de fournisseur, lastSyncedAt, aucun décompte des membres). Les paramètres de l'UI se lit comme suit ...
Authoriser l'accès à la boîte aux lettres basée sur les privilèges pour lire et envoyer
resolveForMailbox n'accorde l'accès que via une affectation directe de la boîte à messagerie, C'est-à-dire des boîtes aux lettres en faisant surface à travers l...
Préserver le nom de fichier d'origine et le type de contenu au téléchargement de la pièce jointe
Les critères d'évaluation (les deux à la personne et les contrôleurs de la boîte à messagerie partagée) émettaient la disposition de contenu: pièce jointe sans ...
Synchronisation des membres.email lorsque la boîte aux lettres primaire est attribuée, modifiée ou supprimée
Lorsqu'une boîte aux lettres a été attribuée à un membre d'un groupe d'adresses KAMO-MAIL, membres.email n'a jamais été mis à jour, ce qui a amené EmailCredenti...
Marque en lecture en lecture pour les boîtes aux lettres partagées et les boîtes aux lettres membres
EmailController.setFlags accepte maintenant un param optionnel mailboxId query et les itinéraires via la résolutionProviderWithMailbox de sorte que les drapeaux...
Mandulation IMAPInputStream dans getMessage pour empêcher ClassCastException
JavaMail peut renvoyer une IMAPInputStream au lieu d'une chaîne décodé à partir de partie.getContent() lorsque le contenu du message n'a pas été pré-comblé. Le ...
Utiliser getHastachments() pour correspondre à l'emballage booléen
est un booléen (étouveur), donc Lombok génère getHasAttachments() not isHasAttachments(). Ce dernier seul existe pour booléen primitif. Utiliser Boolean.TRUE.eq...
Reset stale hasApicements en synchronisation et accumulation correctement
- Reset has-tachs-tachs-fausse au début de la synchronisation de la masse de manière aussi périmés valeurs vraies à partir d'anciennes détections MIME faussem...
Soutien de l'annulation de l'envoi d'Adress
Adds FromAddaddressRequest à EmailSendRequest afin que le frontend puisse spécifier quelle adresse alias/partagé/case de courrier à envoyer. SmtpOnlyProvider ma...
Correction de l'analyse des fixations et has
Trois corrections à EmailImapService: 1. à Envelope: contrôle en plusieurs parties étroites en plusieurs parties/mélange seulement Les e-mails en texte (mul...
Ajouter com.kamo.z.shared.commerce pour permettre la numérisation des référentiels Jpa
(nécessaire par dans la bibliothèque partagée) vit sous la direction de com.kamo.z.shared.commerce mais n'était pas inclus dans la numérisation du référentiel J...
Nom du champ correct et type dans getFromAddresses response
Backend envoyait la clé 'email' mais frontend attendue 'adresse', et envoyer le type 'shared-mailbox' lorsque le frontend s'attendait à "partagé". Corrections é...
Retournez aux domaines d'org lorsque pas d'e-mails-fournisseurs-domaines ne défini par défaut
KamoMailDomainValidator était difficile avec 403 pour les organisations qui ont un Domaine vérifié DNS dans les domaines d'org mais ne l'a jamais ajouté à l'e-m...
Retourner la réponseÀ modifier le . smtpService.send prend les pièces jointes non répond
Comme ce que tu vois expédier ?
Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.