- Spegnimento
- 29 settembre 2026 alle ore 02:05 UTC
- Autore
- Kamo
- Impegno
- 38cd3d5
Recensione indipendente di D-luna-1 (email-fix-review-1.md) ha trovato due BLOCKER e un MAJOR, ogni un vero falso rifiuto di posta legittima, dimostrato dal codice già in questo repo: - Caso (BLOCKER): AliasService.createAlias, SharedMailboxService.create e Persino un indirizzo esattamente come un amministratore digitato — una riga reale può leggere "Sales@kamocrm.com". Ogni ricerca è ora caso-insensibile presso il database (LOWER(col) = LOWER(?)), oggetto di org id, che raggiunge ancora le file di questa organizzazione attraverso ogni tabella (org id HASH, col) Indice univoco piuttosto che una scansione cross-organizzazione — non può usare l'indice componente di gamma ordinato per cercare il valore esatto dentro di loro. Un indice funzionale LOWER(col) per tavolo (o caso di normalizzazione a tempo di scrittura in quei tre servizi) sarebbe ripristinare un punto di ricerca normale; né è fatto qui senza segno-off, dal momento che entrambi sono più grandi di questo compito. Implementato via EntityManager query native in RecipientDomainValidator piuttosto che nuovi metodi di repository kamo-shared-library. - Plus-tags (BLOCKER): sage+urgent@kamocrm.com ora si piega a sage@kamocrm.com (EmailAddress.baseLocalPart(), la stessa piega lo strato di consegna/suppressione già si applica) prima della mailbox check — mai per il controllo alias, dal momento che un alias è il suo indirizzo distinto e deliberatamente creato. - Domini radice multipli (MAJOR): un indirizzo alias-domain (kamouniverse.com) è ora Retribuito a tutti i domini in ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** il default dell'interfaccia utente (allowedDomain) — una casella di posta su una seconda radice di proprietà non legge più come sconosciuto solo perché non è il dominio predefinito di org. - Controllo membro non indicizzato (MAJOR): il fallback MemberRepository viene rimosso. Non ha un indice di supporto, quindi ha fatto una scansione. ogni riga membro dell'organizzazione per ogni autenticamente cattiva ipotesi — esattamente questo la ragione di esistere. Era anche inutile: questa classe funziona solo mai per un'organizzazione su KamoMail, dove un indirizzo reale e consegnabile ha sempre un ******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* il cui .email si abbina ma non ha nessuna di queste righe non ha casella di posta sul server condiviso, quindi un invio a loro non riesce a RCPT TO indipendentemente da ciò che questo Controllare detto. Vedere la classe javadoc per l'argomento completo. - Truncation (NIT): indirizzi denominati ("e N more"), quindi il taglio 300-char di DownstreamErrors non può più fettare un messaggio di invio di molti-bad-recipiente fuori metà indirizzo prima di MailPack suggerimento directory-lookup è allegato. respintoI destinatari() non sono mai troncati. Il risultato MINOR (esistenza oracolo) è accettato come ragionamento, non un cambiamento di codice: il pre-flight check risponde "does x@ownDomain esiste" più velocemente del preesistente SendFailedException->422 RECIPIENTS REJECTED percorso già potrebbe (un vero RCPT TO), per lo stesso-org, chiamante a posto; non apre alcun nuovo limite di privilegio. Test (rosso confermato, poi verde): RecipientDomainValidatorTest riscritto contro il nuovo design basato su EntityManager (mirrors) RETURS Query mock) con nuovi casi per un indirizzo memorizzato-mixed-case, un +tag contro una vera casella di posta, un +tag che ancora non risolve, e un indirizzo alias-domain la cui casella di posta reale vive su un dominio root non predefinito (con e senza +tag). SendFailureResponseTest ha guadagnato i casi per la prosa tappata vs. il non-truncated elenco strutturato. E' un test di mvn pesante. 77 corsa, 0 guasti.
