Status- und automatisch-seed benötigte Vorlagen auf der Liste aufbeeilen
- EmailTemplateController.list() akzeptiert jetzt ?status= param und filter Verwendung der vorhandenen findByOrgIdAndStatus-Abfrage - Auto-Samen erforderliche...
Vorschau verwendet dieselben Auto-Vierer wie sendToUser (org logo + Name)
Der Vorschau-Endpunkt injiziert jetzt LogoUrl, logoSimpleUrl und orgName von die Domain der Org vor der Anwendung von Sample-Content-Variablen, passend zu exakt...
Update EMAIL_VERIFICATION Beispiel vars auf aktuelle Vorlage
Verwenden Sie AblaufText statt AblaufMinutes (variabel umbenannt) und aktualisieren überprüfenLink, um auf die Register-Subdomain (korrekter Senden Pfad) zu zei...
Preserve DB Domain-Fall in NoReply von Adresse
Entfernt zuLowerCase() - die Domain kommt bereits von resolvePrimaryDomain die org_domains aus der Datenbank liest, so dass der Fall kanonisch von DB ist.
Root-Domain für NoReply from-address statt nackt subdomain
resolvePrimaryDomain() gab den ersten Domain-Eintrag zurück (z.B. "www") die NoReply@www produzierte. Jetzt bevorzugt Root-Domains (Elft == null) so Transaktion...
internal.auth.secret zur Konfiguration hinzufügen.
InternalAuthFilter lehnte alle Service-to-Service-Anrufe ab (Sende, seed-org) mit 503 weil internal.auth.secret nicht konfiguriert war. Passt das gleiche INTERN...
Transaktionsübertrag auf Port-25 Relais und automatisch geseed fehlende Vorlagen erlauben
Port-25 SMTP (Postfix) erfordert keine authentische . transaktionalCredentials() wurde Werfen ProviderUnverfüge, wenn Benutzer/Pass nicht konfiguriert waren, bl...
Fügen Sie dao.repositories zu JPA-Scan hinzufügen, so dass E-MailTemplateRepository gefunden wird
Gleiches Muster wie KamoInitializerService - explizite basePackages overrides Standard-Scanning und muss jedes Paket, das Repositorien hat enthalten.
Umbenennen Sie mailboxId-id und providerStatus-Status in Mailbox-Liste Antwort
Ausstimmen Sie Feldnamen mit Frontend-Erwartungen für Mitglieder-Mailbox-Inserate.
Unterstützung von Briefkasten-Schaltung durch Lösen von IMAP-Greditinformationen pro MailboxId
Hinzugefügt getMailCredentialsByEmail zu suchen virtual_users per E-Mail direkt, resolveForMailbox zu MailProviderResolver mit Zugriffsprüfung und optional mail...
DomainService in EmailDomainService umbenennen, um Bohnen-Namenskonflikt zu lösen
DomainService der gemeinsamen Bibliothek und der lokale DomainService der gemeinsamen Bibliothek beide als 'domainService'-Beine registriert, was CrashLoopBackO...
Korrekte Methode Signaturen in DomainController und MailboxController
- Beheben getMemberMailboxes -" getMailboxesForMitglied in MailboxController - Vermisste Parameter des MemberId hinzufügen, umVerifikationRecords und überprüfen...
Auszug aus BCC-Empfängern aus IMAP-Nachrichten
Der BCC-Header wird auf gesendeten Ordnerkopien aufbewahrt. Jetzt neben Zu und CC, so dass das Frontend kann es in gesendeten Artikel Vorschauen angezeigt.
Provider GET gibt sowohl Typ als auch ProviderType zurück, PUT akzeptiert beide
GET /api/email/provider enthält jetzt sowohl 'typ' als auch 'providerType' Felder in der Antwort für Frontend-Kompatibilität. PUT akzeptiert jetzt 'Typ' als ein...
Kalender, Kontakt und Integration ID-Typen von Long auf UUID aktualisieren
Kalender-Einheiten, Kontakt-Unterentitäten und ContactIntegration IDs sind jetzt UUID. Updates alle Dienste, Controller und DAV Endpunkte.
Security-Service.*** zu K8s ConfigMap hinzufügen
KamoJwtService verlangt diese Eigenschaft für Träger-Token-Validierung in DavAuthFilter, aber die K8s ConfigMap überschreibt application.yml und wurde fehlt es ...
Verwenden Sie ical4j Builder in generierenEventIcs Fallback, verwenden Version konstant
Entfernen Sie doppelte JPA Repo-Scan - verwenden Sie nur Eltern-Paket
com.kamo.z.shared.email deckt metadata.repos ab, beides verursacht BeanDefinitionOverrideException on messageLabelRepository.
rspamd config zu K8s ConfigMap hinzufügen und ddl-auto auf keine setzen
Die rspamd.base-url Eigenschaft fehlte in der Produktion ConfigMap, verursacht CrashLoopBackOff auf Einsatz. Richtt auch dev ddl-auto zu none.
Entfernen Sie hart codierte WebSocket-Header von E-Mail Middleware
Traefik v3 behandelt WebSocket Upgrade/Connection Header nativ. Hardcoding sie brach SockJS Fallback Transporte (xhr-streaming, xhr-polling). Jetzt passt media-...
Verwenden Sie @Value für RspamdConfig und machen Training non-blocking
RspamdConfig verwendet jetzt @Value, um bestehende Projektmuster anzupassen. Rspamd Trainingsausfälle verhindern nicht mehr, dass die Nachricht bewegt wird.
Leere Liste für nicht existierende IMAP-Ordner zurückgeben statt abzustürzen
Kopie auf gesendeten Ordner nach dem Senden von E-Mail speichern
Transport.send() sendet nur per SMTP ohne Speichern an IMAP. saveToSent() hinzugefügt, um die Nachricht an den Sent-Ordner anzuhängern mit dem SEEN-Flag gesetzt...
STARTTLS deaktivieren und für Port 25 intern SMTP
Port 25 auf internem Postfix unterstützt STARTTLS nicht und erlaubt Relais von Cluster-IPs über mynetworks. Nur authentisch ermöglichen und STARTTLS bei Verwend...
Verwenden Sie SMTP Port 25 statt 587 für internen Postfix
Postfix hört nur auf Port 25 innerhalb des Clusters. Hafen 587 (Einsendungen) ist im Container nicht aktiviert.
ddl-auto von none zu update für Auto-Schema-Management
Hibernate erstellte nicht das email_metadata Schema und Gespräche -Tabelle, weil ddl-auto in der k8s configmap auf keine gesetzt wurde.
Verwenden Sie native Abfrage für PostgreSQL Text[] Spalte in ConversationRepository
MEMBER OF wird von Hibernate für @JdbcTypeCode(ARRAY) Felder nicht unterstützt. Wechseln Sie zu nativem SQL mit ANY() für folder_ids Array-Lookup.
Verwenden Sie StringRedisTemplate, um OTK/Sitzungswerte als einfache Strings zu lesen
Die Next.js App speichert OTK und *** Werte als schlichte Strings in Redis. Der Standard RedisTemplate verwendet JSON Serializer, der sie nicht analysiert.
Vermisste jakarta.mail.event-Importe hinzufügen und IOException in NATS Handler fangen
Wie, was Sie sehen Versand?
Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.