Podgląd używa tych samych auto-vars, co sendToUser (logorg + nazwa)
Punkt końcowy podglądu wstrzykuje teraz logoUrl, logoSimpleUrl i orName Domena org przed zastosowaniem zmienne zawartości próbki, dopasowując się do domeny Dokł...
Zaktualizuj EMAIL_VERIFICATION sample vars, aby dopasować się do bieżącego szablonu
Użyj wygaśnięciaTekt zamiast wygaśnięciaCzemia orzechy (zmieniona nazwa) i aktualizacja SprawdźLink, aby wskazać poddomenę rejestru (poprawna ścieżka wysyłania)...
Preserve DB przypadek domeny w NoReply z adresu
Usunięto doLowerCase() — domena już pochodzi z rozwiązaniaPrimaryDomain Czyta org_domeny z bazy danych, więc przypadek jest kanoniczny z DB.
Rozgrzesz domenę głównego dla NoReply z aadresu zamiast gołyej subdomeny
upar.PrimaryDomain() zwracał pierwszy wpis domeny (np. "www") W produkcji NoReply-wwww. Teraz preferuje domeny podstawowe (rodzic - null) więc Transakcje e-mail...
Dodaj wewnętrzną.auth.secret do konfigmapy EmailService
InternalAuthFilter odrzucał wszystkie połączenia między służbami a usługami (wysłać, Nasiłocie-org) z 503, ponieważ internal.auth.secret był nieskonfigurowany. ...
Zezwalaj na wysyłanie transakcji na przekaźniku port-25 i automatycznych brakujących szablonów
Port-25 SMTP (postfix) nie wymaga żadnego auth — transakcyjneCredentials() wyrzucanie ProviderUnavailableException, gdy użytkownik/przejść był nieskonfigurowany...
Dodaj dao.repositories do skanowania JPA, aby znaleźć e-mailTemplateRepository
Ten sam wzór co KamoInitializerService — podstawa Podpisy Skanowanie domyślne i musi zawierać wszystkie pakiety, które mają repozytoria.
Zmień nazwę skrzynki pocztowejId-id i providerStatus-status w odpowiedzi na listę skrzynek pocztowych
Wyrównaj nazwy pól z oczekiwaniami frontendu dla listów skrzynek pocztowych członków.
Obsługa przełączania skrzynek pocztowych poprzez rozwiązywanie poświadczeń IMAP na skrzynkę pocztowąId
Dodano getMailCredentialsByEmail, aby sprawdzić virtual_users przez e-mail bezpośrednio, this-mail:Mailbox do MailProviderResolver z weryfikacją dostępu, oraz O...
Z Nazwanie DomainService do EmailDomainService w celu rozwiązania konfliktu nazwy fasoli
Usługa domeny biblioteki współdzielonej i lokalna usługa e-mailService Obaj zarejestrowani jako fasoli "domainService", powodując CrashLoopBackOff wdrożony.
Prawidłowe podpisy metod w DomainController i MailboxStroller
- Napraw getMemberMailboxes -> getMailboxesForMember w MailboxStroller - Dodawanie brakującego parametru memberId, aby uzyskaćVerificationRecords i zweryfikować...
Wyciąg zbiorców BCC z komunikatów IMAP
Nagłówek BCC jest przechowywany w wysłanych kopiach folderów. Teraz ekstrahowane obok Aby uzyskać CC, aby frontend mógł wyświetlać go w przesłanych podglądach p...
Dostawca GET zwraca zarówno typ, jak i dostawcaType, PUT akceptuje oba
GET /api/email/provider obejmuje teraz pola typu i "providerType" W odpowiedzi na zgodność frontend. PUT przyjmuje teraz "typ" jako Niepokój, gdy "dostarczszyTy...
Zaktualizuj kalendarz, kontakt i typy identyfikatorów integracji z Long do UUID
Podmioty kalendarza, podsycanie kontaktów i identyfikatory ContactIntegration to A teraz UUID. Aktualizuje wszystkie usługi, kontrolery i punkty końcowe DAV.
Dodaj usługę zabezpieczenia. do K8s ConfigMap
KamoJwtService wymaga tej właściwości dla walidacji tokenów Bearer w DavAuthFilter, ale K8s ConfigMap nadpisuje aplikację.yml i był Brakuje go - powodując Crash...
Usuń duplikat skanowania repo JPA — używaj tylko pakietu nadrzędnia
com.kamo.z.shared.email obejmuje metadata.repos, skanowanie obu jest spowodowane BeanDefinitionOverrideException na stronie messageLabelRepository.
Dodaj pakiety skanowania repozytorium com.kamo.z.shared.email do repozytorium JPA
Dodaj rspamd config do K8s ConfigMap i ustaw ddl-auto na none
W produkcji ConfigMap zaginęła nieruchomość baza bazowa, Powodowanie CrashLoopBackOff na rozmieszczeniu. Recyv ddl-auto do żadnego.
Usuwanie nagłówków WebSocket z poczty e-mail middleware
Traefik v3 obsługuje WebSocket Upgrade/Connection headery natywnie. Twardokodnie ich zepsuły transporty napadowe SockJS (xhr-streaming, xhr-poling). Teraz pasuj...
Użyj - Wynaj dla RspamdConfig i trenuj bez blokowania
RspamdConfig używa teraz ’Value to do dopasowania istniejących wzorców projektów. Niepowodzenia treningowe Rspamd nie uniemożliwiają już przesuwania wiadomości.
Zapisz kopię do folderu Wysłane po wysłaniu wiadomości e-mail
Transport.send() wysyła tylko przez SMTP bez zapisywania do IMAP. Dodano saveToSent() do przypiela wiadomości do folderu Wysłane Z zestawem SEEN flag. Dotyczy w...
Wyłącz STARTTLS i auth dla portu 25 wewnętrznego SMTP
Port 25 na wewnętrznym Pofiksowanie nie obsługuje STARTTLS i pozwala Przekaźniki z klastra IP za pośrednictwem mynetów. Tylko włączaj auth i STARTTLS przy użyci...
Użyj portu SMTP 25 zamiast 587 dla wewnętrznego postfix
Postfix odsłuchuje tylko na porcie 25 wewnątrz klastra. Port 587 (podazynie) nie jest włączone do pojemnika.
Zmiana ddl-auto z żadnego na aktualizację do automatycznego zarządzania schematami
Hibernate nie tworzył schematu i rozmów email_metadata Stół, ponieważ ddl-auto został ustawiony na żaden w konfiskacie k8s.
Użyj natywnego zapytania dla PostgreSQL text[] column in ConversationRepository
CZERWIENIE nie jest wspierane przez Hibernacja dla pól JdbcTypeCode(ARRAY). Przełącz natywną SQL z ANY() dla wyglądu tablicy folder_ids.
Użyj StringRedisTemplate, aby odczytać wartości OTK / sesji przechowywane jako zwykłe ciągi
Aplikacja Next.js przechowuje wartości OTK i . jako zwykłe ciągi w Redis. Domyślny RedisTemplate używa seryjnyizatora JSON, który nie jest w stanie ich przeanal...
Dodaj brakujące jakarta.mail.event import i połów IOExcepcja w obsłudze NATS
Jak to, co widzisz żeglugę?
Każda z tych aktualizacji automatycznie ląduje w miejscu pracy. Zacznij za darmo i obserwuj, jak rośnie tydzień po tygodniu.