Filtre d'état du fil et modèles d'auto-amorçage requis sur la liste
- EmailTemplateCroller.list() accepte désormais le système et les filtres de statut à l'aide de la requête start-série findByOrgIdAndStatus - Moteurs d'auto-a...
Preview utilise les mêmes auto-vars que sendToUser (logo et nom d'org)
Le critère de prévisualisation injecte maintenant le logoUrl, le logoSimpleUrl et l'orggName le domaine de l'organisation avant l'application de variables de co...
Mettre à jour les vars de l'échantillon de EMAIL-VERIFICATION pour correspondre au modèle actuel
Utiliser expirationText au lieu d'expirationMinutes (variable de re-rebaptisé), et mise à jour verifyLink pour pointer vers le sous-domaine du registre (chemin ...
Préserver le cas de domaine DB dans NoReply à partir de l'adresse
Suppression enBasé surLowerCase() - le domaine provient déjà de la resolvePrimaryDomain qui lit org-domains à partir de la base de données, donc cas est canoniq...
Résoudre le domaine racine pour NoReply à partir de l'adresse au lieu de sous-domaine nue
resolvePrimaryDomain() renvoyait la première entrée de domaine (par exemple "www") qui a produit NoReply-www. Maintenant, il préfère les domaines racines (paren...
Ajouter interne.auth.secret à EmailService configmap
InternalAuthFilter rejetait tous les appels de service à service (endire, seed-org) avec 503 parce que internal.auth.secret était non configuré. Correspond au m...
Autoriser l'envoi transactionnel sur les modèles de relais port-25 et d'auto-semences manquantes
Port-25 SMTP (postfixe) n'a pas besoin d'auth et transactionalCredentials() était lancer ProviderUndisponibilitéException lorsque l'utilisateur/passé était non ...
Ajouter dao.repositories à la numérisation de l'APP afin de trouver EmailTemplateRepository
Même modèle que KamoInitializerService et base explicitePacks overs scanner par défaut et inclure chaque paquet qui a des référentiels.
Renommer la réponse de la liste mailboxId et providerStatus-status dans la liste des boîtes aux lettres
Alignez les noms des champs avec les attentes frontales pour les listes de boîtes aux lettres membres.
Prise en charge de la commutation de la boîte aux lettres en résolvant les identifiants IMAP par boîte aux lettresId
getMailCredentialsByEmail pour rechercher les utilisateurs virtuels par e-mail directement, la caser à MailProviderResolver avec vérification d'accès, et option...
Rebaptiser DomainService en EmailDomainService pour résoudre le conflit de nom de haricots
DomainService de la bibliothèque partagée et le service local d'EmailService les deux enregistrés en tant que haricot «domainService», provoquant le déploiement...
Signatures correctes dans DomainController et MailboxController
- Réparez les boîtes à sous-boxes de réception et getMailboxes - Ajouter le paramètre MemberId manquant pour getVerificationRecords et vérifierDomain dans Domai...
Extrait des destinataires BCC des messages IMAP
L'en-tête BCC est conservé sur les copies de dossiers envoyées. Maintenant extrait à côté To et CC afin que le frontend puisse l'afficher dans les aperçus d'élé...
Fournisseur GET retourne à la fois type et fournisseurType, PUT accepte les deux
GET /api/email/provider inclut désormais à la fois les champs «type» et «fournisseurType» dans la réponse pour la compatibilité frontale. PUT accepte maintenant...
Mise à jour des fichiers de test EmailService pour les ID d'entités de calendrier UUID
Mettre à jour les types de calendrier, de contact et d'identification d'intégration de Long à UUID
Les entités de calendrier, les sous-entités de contact et les identifiants de contact Maintenant UUID. Mise à jour de tous les services, contrôleurs et critères...
Ajoutez un service de sécurité à K8s ConfigMap
KamoJwtService nécessite cette propriété pour la validation de jeton de porteur dans DavAuthFilter, mais la ConfigMap de K8s remplace application.yml et était l...
Aligner le chemin du contrôleur avec la convention de proxy par courrier électronique
Retirer le doublement de la recap par onglet JPA et utiliser uniquement l'emballage parent
com.kamo.z.shared.email couvre metadata.repos, balayage à la fois cause BeanDefinitionOverrideException sur messageLabelRepository.
Ajouter la configuration rspamd à K8s ConfigMap et régler ddl-auto à aucun
La propriété rspamd.base-url manquait de la production ConfigMap, provoquer le déploiement de CrashLoopBackOff. Filce également dev ddl-auto à aucun.
Supprimer les en-têtes WebSocket codés en dur de l'intergiciel
Traefik v3 gère les en-têtes de mise à niveau/connexion WebSocket de manière native. Le codage dur leur a brisé les transports de secours SockS (l'enstreaming x...
Utiliser la valeur pour RspamdConfig et faire de l'entraînement non bloquant
RspamdConfig utilise maintenant la valeur de l'altère à la valeur des modèles de projet existants. Les échecs d'entraînement spamd n'empêchent plus le message d...
Retourner la liste vide pour les dossiers IMAP inexistants au lieu de s'écraser
Enregistrer copie dans le dossier Envoyé après l'envoi d'e-mails
Transport.send() n'envoie que par SMTP sans en conserver à IMAP. Ajout de saveToSent() pour appencher le message au dossier Envoyé avec le drapeau SEEN. S'appli...
Désactiver STARTTLS et authentification pour le port 25 SMTP interne
Le port 25 sur Postfix interne ne prend pas en charge STARTTLS et permet relay à partir d'IP de cluster via des mynetworks. Ne permettre qu'auth et STARTTLS lor...
Utiliser le port SMTP 25 au lieu de 587 pour le Postfix interne
Postfix n'écoute que sur le port 25 à l'intérieur du cluster. Port 587 (soumission) n'est pas activée dans le conteneur.
Changer ddl-auto de personne à la mise à jour pour la gestion du schéma automatique
Hibernate ne créait pas le schéma et les conversations par e-mail-metadata table parce que ddl-auto n'a été mis à aucun dans la configmap k8.
Utiliser la requête native pour la colonne PostgreSQL dans ConversationRepository
L'EMBÉNEMENT n'est pas pris en charge par Hibernate pour les champs de type JdbcType(ARRAY). Passez à SQL natif avec n'importe quel (en) pour la recherche de l'...
Utiliser StringRedisTemplate pour lire OTK/valeurs de session stockées en chaînes simples
L'application Next.js stocke les valeurs OTK et z en chaîne dans Redis. Le RedisTemplate par défaut utilise le sérialisateur JSON qui ne parvient pas à les anal...
Ajouter les importations de jakarta.mail.event manquantes et capturer IOException dans le gestionnaire NATS
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.