Blog

Espressioni regolari per le email: modelli per convalidare gli indirizzi email

DeBounce
Articoli
18 min letto

Punti chiave

  • Le espressioni regolari per gli indirizzi email controllano solo il formato: non possono confermare se un indirizzo esiste effettivamente o è attivo.
  • Un'espressione regolare per le email ben scritta include la parte locale, il simbolo @, il nome di dominio e il dominio di primo livello (TLD).
  • Le espressioni regolari (regex) dovrebbero essere il primo livello di validazione, non l'unico. Combinatele con la verifica dell'indirizzo email in tempo reale per ottenere risultati affidabili.

Hai creato un modulo di registrazione e qualcuno inserisce "john@" nel campo email. Se non è presente alcun sistema di validazione, quel valore viene inserito direttamente nel tuo database come se nulla fosse. Poi, la tua campagna successiva invia un'email a quell'indirizzo, il tuo provider di servizi email (ESP) registra un errore di consegna permanente (hard bounce) e la tua reputazione come mittente subisce un piccolo danno a causa di un errore che era completamente evitabile.

Le espressioni regolari per le email rappresentano il primo livello di difesa contro questo tipo di dati errati. Si tratta di una regola di corrispondenza di pattern che verifica se un input ha la forma di un indirizzo email correttamente strutturato prima ancora che venga memorizzato o elaborato. Comprendere come funzionano le espressioni regolari per le email, e anche dove presentano dei limiti, aiuta a integrare nei propri sistemi meccanismi di validazione più affidabili.

Che cos'è il Regex per le email?

Un'espressione regolare (regex) è una sequenza di caratteri che definisce un modello di ricerca. Un'espressione regolare per gli indirizzi email è un modello scritto specificamente per trovare stringhe che si conformano alla struttura di un indirizzo email valido.

Quando un utente invia un modulo, l'espressione regolare (regex) viene eseguita sull'input. Se la stringa corrisponde al modello (caratteri corretti, un simbolo @ nella posizione corretta, una struttura di dominio valida), l'operazione viene accettata. In caso contrario, il modulo può rifiutare l'input e chiedere all'utente di correggerlo.

Le espressioni regolari per le email operano a livello di input o di modulo. Il loro scopo è individuare tempestivamente gli errori di formattazione più evidenti, prima che i dati entrino nel sistema. Non si connettono ad alcun server né verificano la validità dell'indirizzo; si limitano a un controllo strutturale del testo stesso.

Perché le espressioni regolari nelle email sono importanti

Ogni indirizzo non valido che entra nel tuo database crea un problema a valle. Contribuisce ad aumentare la frequenza di rimbalzo, complica i tuoi report e spreca crediti di invio per contatti che non potranno mai ricevere i tuoi messaggi.

La validazione tramite espressioni regolari (regex) individua gli errori più evidenti alla fonte: simboli @ mancanti, parti locali vuote e nomi di dominio non validi. Filtrando questi errori al momento dell'inserimento, si mantiene il database più pulito senza aggiungere complessità ai processi di back-end.

L'impatto si ripercuote su più team. Per i marketer, dati più puliti si traducono in una migliore deliverability fin dall'inizio. Per gli ingegneri di prodotto, si tratta di un controllo semplice e a bassa latenza che viene eseguito lato client o lato server senza chiamate API esterne. Per i team di dati, riduce il volume di record che necessitano di revisione o correzione manuale in fasi successive.

Detto questo, le espressioni regolari sono efficienti proprio perché sono leggere; controllano solo il formato. Per qualsiasi altra operazione, sono necessari livelli aggiuntivi.

Come funzionano le espressioni regolari nelle email

Le espressioni regolari (regex) funzionano confrontando una stringa di testo con un modello definito, carattere per carattere. Ogni parte del modello descrive ciò che è consentito: caratteri specifici, classi di caratteri, regole di ripetizione o sequenze obbligatorie.

Per un indirizzo email, il modello deve tenere conto di tre parti strutturali:

Espressione regolare per la convalida dell'indirizzo email
  1. La parte locale: tutto ciò che precede il simbolo @ (ad esempio, john.doe)
  2. Il simbolo @: esattamente uno, nella posizione corretta
  3. Il dominio: il nome di dominio e il TLD dopo la @ (es. example.com)

Un'espressione regolare di base per le email verifica che tutte e tre le parti siano presenti e che i caratteri in ciascuna sezione siano consentiti. Ad esempio, il pattern ^[^\s@]+@[^\s@]+\.[^\s@]+$ si legge come: inizio stringa, uno o più caratteri che non sono uno spazio o una @, poi una @, poi altri caratteri diversi da spazio/@, poi un punto, poi altri caratteri diversi da spazio/@, fine stringa.

Questo è un esempio volutamente semplice. Gli schemi del mondo reale diventano più specifici a seconda di quanto rigorosamente si voglia definire ciò che è considerato valido.

Regole comuni utilizzate nelle espressioni regolari per le email

Le espressioni regolari per gli indirizzi email seguono una serie di regole pratiche che definiscono l'aspetto di un indirizzo valido. Non coprono tutti i casi limite, ma rispecchiano la struttura utilizzata dalla maggior parte dei sistemi per la convalida quotidiana.

Regole della parte locale (prima della @):

  • Sono ammesse lettere (a–z, A–Z) e cifre (0–9).
  • I caratteri speciali possono includere punti (.), trattini bassi (_), trattini (-) e segni più (+).
  • La parte locale non può iniziare o terminare con un punto.
  • I punti consecutivi (..) non sono consentiti.
  • La lunghezza è tecnicamente limitata a 64 caratteri, secondo le specifiche RFC pertinenti.

Regole del dominio (dopo la @):

  • Il dominio deve includere almeno un punto che separi il nome del dominio dal TLD (ad esempio, example.com).
  • Le etichette tra i punti possono contenere lettere, cifre e trattini, ma non possono iniziare o terminare con un trattino.
  • Il TLD deve essere composto da almeno due caratteri. La maggior parte dei modelli moderni accetta TLD di lunghezza variabile per coprire le estensioni più recenti come .io, .museum o .photography.

Restrizioni generali applicabili all'intero indirizzo:

  • Nell'indirizzo non sono ammessi spazi.
  • Il simbolo @ deve comparire esattamente una volta.
  • Secondo la RFC 5321, la lunghezza totale dell'indirizzo non deve superare i 254 caratteri.

Tipi di pattern Regex per le email

Non tutti i pattern di espressioni regolari per le email hanno lo stesso scopo. La scelta giusta dipende da quanto rigorosa deve essere la convalida.

I modelli semplici coprono gli elementi essenziali: una parte locale, una @, un dominio e un TLD. Sono veloci da scrivere, facili da leggere e funzionano bene per la maggior parte dei casi d'uso standard, come i moduli di registrazione e i campi di contatto. Il compromesso è che potrebbero accettare alcune stringhe che tecnicamente non rispettano le regole per i casi limite e potrebbero anche rifiutare accidentalmente indirizzi insoliti ma validi.

Un semplice schema comunemente utilizzato in JavaScript ha questo aspetto:

/^[^\s@]+@[^\s@]+\.[^\s@]+$/

I modelli complessi cercano di implementare le specifiche complete per le email in modo più preciso. Definiscono esplicitamente i caratteri consentiti, impongono regole di posizionamento dei punti, tengono conto delle stringhe racchiuse tra virgolette nella parte locale e gestiscono i valori letterali degli indirizzi IP nel dominio. Questi modelli sono più accurati, ma significativamente più difficili da leggere e da gestire.

Uno schema più dettagliato utilizzato in molti sistemi di produzione:

/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/

Questo specifica esplicitamente i caratteri consentiti nella parte locale, permette l'uso di trattini nelle etichette di dominio e richiede un TLD di almeno due caratteri.

Il compromesso pratico

I modelli semplici sono più facili da gestire e meno soggetti a falsi rifiuti. I modelli complessi offrono un'applicazione più rigorosa del formato, ma comportano un maggiore carico di lavoro per l'implementazione. Per la maggior parte dei casi d'uso relativi al marketing e ai prodotti, un modello di media complessità ben collaudato è sufficiente, e la verifica in tempo reale si occupa del resto.

Procedure consigliate per la convalida delle email con le espressioni regolari

Le espressioni regolari (regex) funzionano al meglio quando vengono considerate parte di un processo di validazione più ampio. Un pattern troppo rigido può bloccare utenti validi, mentre uno troppo permissivo lascia passare dati non validi. L'obiettivo è trovare un equilibrio in cui i controlli di formato siano affidabili senza creare intoppi.

  • Assicurati che il tuo schema sia leggibile: Un'espressione regolare che nessuno nel tuo team è in grado di interpretare senza un manuale rappresenta un rischio in termini di manutenzione. Nella maggior parte dei casi, un modello chiaro e moderatamente dettagliato è più pratico di uno che tenta di corrispondere a ogni caso limite definito negli standard RFC.
Validazione dell'indirizzo email tramite espressioni regolari
  • Prima di implementare il sistema, esegui dei test con un'ampia gamma di input: Includi casi limite come indirizzi con un + nella parte locale ([email protected]), sottodomini ([email protected]), e TLD più recenti ([email protected]Un modello che non funziona con input legittimi crea attrito per gli utenti reali.
  • Combina le espressioni regolari con ulteriori verifiche: Regex conferma il formato; non può confermare che l'indirizzo esista. Per i flussi di registrazione e le importazioni di elenchi, abbina la convalida del formato a un'e-mail di conferma o a un aggiornamento in tempo reale. verifica email Verifica. Questo individua indirizzi temporanei, errori di battitura nel dominio e indirizzi formattati correttamente ma inesistenti.
  • Dai priorità all'esperienza utente: Se la tua espressione regolare rifiuta un indirizzo valido, ad esempio uno con un segno più o un TLD più recente, perderai un abbonato reale senza saperlo. È più sicuro consentire un input leggermente più ampio nella fase di formattazione e affidarsi a controlli successivi per filtrare gli indirizzi non utilizzabili.

Errori comuni e limitazioni delle espressioni regolari per le email

Comprendere cosa non può fare un'espressione regolare per le email è tanto importante quanto sapere come scriverla.

  • Le espressioni regolari convalidano il formato, non l'esistenza: Una stringa come [email protected] Supererà la maggior parte dei pattern di espressioni regolari per le email, ma questo non significa che l'indirizzo sia reale, attivo o recapitabile. Le espressioni regolari non tengono conto del DNS, dei server di posta o dell'effettiva esistenza di una casella di posta. I controlli di formato e i controlli di recapito sono due cose distinte.
  • Falsi negativi, rifiuto di indirizzi validi: Alcuni indirizzi legittimi non soddisfano i modelli eccessivamente rigidi. Indirizzi con un + nella parte locale ([email protected]I TLD (domini di primo livello) sono comuni a scopo di filtraggio e sono pienamente validi. Anche i TLD più recenti come .museum, .io o .agency potrebbero essere rifiutati se il pattern impone un limite di due caratteri per i TLD. Ogni rifiuto errato rappresenta una persona reale che non è riuscita a registrarsi.
  • Falsi positivi, accettazione di stringhe non valide: I pattern semplici possono trasmettere stringhe che sembrano corrette ma non lo sono. Ad esempio, user@example supera molti controlli di base ma non ha un TLD valido. Un pattern che non impone una lunghezza minima per il TLD lo accetterà e memorizzerà un indirizzo non valido.
Espressione regolare per l'indirizzo email
  • Gli schemi eccessivamente complessi si rompono: I modelli che tentano di implementare la specifica completa per le email RFC 5322 possono raggiungere centinaia di caratteri e fallire comunque nei casi limite. Sono difficili da testare, difficili da debuggare e spesso introducono nuovi problemi nel tentativo di risolverne di vecchi. La specifica per le email è di per sé abbastanza complessa da non poter essere coperta perfettamente da una singola espressione regolare.
  • Le espressioni regolari (regex) rappresentano il primo filtro, ma non la soluzione completa: Rileva gli errori di formattazione in modo rapido ed economico. Per tutto ciò che va oltre la formattazione, inclusa la validità del dominio, i record MX, l'esistenza della casella di posta e il rilevamento degli indirizzi temporanei, è necessario un livello di verifica. Controlli come Ricerca di record MX La validazione completa degli indirizzi email va oltre le espressioni regolari, verificando se un indirizzo può effettivamente ricevere messaggi, anziché limitarsi a controllare se sembra corretto.

Conclusione

Le espressioni regolari per le email offrono un modo rapido e leggero per individuare gli errori di formattazione prima che entrino nel sistema. Vale la pena implementarle in ogni modulo e endpoint API che accetta input email. Tuttavia, rappresentano il primo passo in un flusso di lavoro di validazione, non l'ultimo.

Un indirizzo formattato correttamente può comunque essere inattivo, usa e getta, legato a un dominio catch-all o semplicemente inesistente. Questi indirizzi superano sempre le espressioni regolari. Una volta che sono nel tuo database, aumentano la tua frequenza di rimbalzo, influenzano il tuo sicurezza della posta elettronica postura e ridurre l'affidabilità complessiva dei dati di contatto.

Carica la tua lista su DeBounce e va oltre i controlli di formato. DeBounce verifica la sintassi secondo gli standard RFC, controlla i record DNS e MX, verifica l'esistenza della casella di posta e segnala i tipi di indirizzo temporanei e rischiosi, individuando ciò che le espressioni regolari non riescono a rilevare. Inizia con 100 verifiche gratuite per vedere esattamente cosa c'è nella tua lista prima del prossimo invio.

Domande frequenti

Risposte alle domande più frequenti su questo argomento.
01

Un indirizzo email può contenere più simboli @?

No. Secondo le specifiche per le email, è richiesto esattamente un simbolo @ per separare la parte locale dal dominio. Qualsiasi stringa con zero o più di un simbolo @ non è un indirizzo email valido e non supererà né i controlli basati su espressioni regolari né quelli a livello di server.

02

Qual è la lunghezza massima di un indirizzo email valido?

La parte locale (prima della @) è limitata a 64 caratteri, il dominio a 255 caratteri e l'indirizzo completo a 254 caratteri, come definito dalla RFC 5321. La maggior parte degli indirizzi reali rientra ampiamente in questi limiti, ma è consigliabile applicarli nella logica di validazione per evitare problemi di archiviazione in casi limite.

03

È possibile convalidare gli indirizzi email con caratteri internazionali (Unicode) tramite espressioni regolari?

Le espressioni regolari standard scritte per i set di caratteri ASCII non gestiscono correttamente gli indirizzi email internazionalizzati, che possono includere caratteri non latini nella parte locale. La convalida degli indirizzi internazionalizzati richiede un'espressione regolare estesa che utilizzi le classi di caratteri Unicode o una libreria di parsing dedicata. Nella maggior parte dei casi, la convalida ASCII standard copre la stragrande maggioranza degli indirizzi che si incontreranno, e l'abbinamento con gli strumenti di verifica delle aziende di sicurezza email gestisce il resto.