Mi chiedo fino a che punto le persone dovrebbero prendere la convalida dell'indirizzo e-mail. Il mio campo è principalmente lo sviluppo web, ma questo vale ovunque.
Ho visto alcuni approcci:
- controlla semplicemente se c'è un "@" presente, che è semplice ma, naturalmente, non è così affidabile.
- un test regex più complesso per i formati e-mail standard
- a regex completo contro RFC 2822 - il problema con questo è che spesso un indirizzo e-mail potrebbe essere valido ma probabilmente non è ciò che l'utente intendeva
- Convalida DNS
- Convalida SMTP
Come molte persone potrebbero sapere (ma molti non lo fanno), gli indirizzi e-mail possono avere molte strane variazioni che la maggior parte delle persone non considera (vedi RFC 2822 3.4.1 ), ma devi pensare agli obiettivi della convalida: stai semplicemente cercando di assicurarti che un messaggio di posta elettronica possa essere inviato a un indirizzo o che è probabilmente l'intenzione dell'utente di inserire (il che è improbabile in molti dei casi più oscuri di indirizzi altrimenti "validi").
Un'opzione che ho considerato è semplicemente dare un avvertimento con un indirizzo più esoterico, ma permetterti comunque di passare la richiesta, ma questo aggiunge complessità a un modulo e la maggior parte degli utenti rischia di essere confusa.
Sebbene la convalida DNS / convalida SMTP sembri come non-brainers, prevedo problemi in cui il server DNS / server SMTP è temporaneamente inattivo e un utente non è in grado di registrarsi da qualche parte, oppure il server SMTP dell'utente non supporta le funzionalità richieste.
Come potrebbero gestire alcuni sviluppatori esperti qui? Ci sono altri approcci rispetto a quelli che ho elencato?
Modifica: ho completamente dimenticato il più ovvio di tutti, inviando una e-mail di conferma! Grazie a chi ha risposto per averlo indicato. Sì, questo è abbastanza infallibile, ma richiede ulteriori problemi da parte di tutti i soggetti coinvolti. L'utente deve recuperare alcuni messaggi di posta elettronica e lo sviluppatore deve ricordare i dati dell'utente prima che vengano persino confermati come validi.