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:
- semplicemente controllando se c'è un "@" presente, che è semplice ma ovviamente non affidabile.
- un test regex più complesso per i formati di posta elettronica standard
- una regex completa contro RFC 2822 - il problema è che spesso un indirizzo e-mail potrebbe essere valido ma probabilmente non è ciò che l'utente intendeva
- Convalida DNS
- Validazione SMTP
Come molte persone potrebbero sapere (ma molti non lo sanno), gli indirizzi e-mail possono avere molte strane variazioni che la maggior parte delle persone di solito non considera (vedi RFC 2822 3.4.1 ), ma devi pensare agli obiettivi di la tua convalida: stai semplicemente cercando di assicurarti che un messaggio di posta elettronica possa essere inviato a un indirizzo, o che sia ciò che l'utente probabilmente intendeva inserire (il che è improbabile in molti dei casi più oscuri di altrimenti 'valido "indirizzi).
Un'opzione che ho preso in considerazione è semplicemente dare un avvertimento con un indirizzo più esoterico ma consentire comunque di passare la richiesta, ma ciò aggiunge maggiore complessità a un modulo e la maggior parte degli utenti rischia di essere confusa.
Mentre la convalida DNS / la convalida SMTP sembra non-brainer, prevedo problemi in cui il server DNS / server SMTP è temporaneamente inattivo e un utente non è in grado di registrarsi da qualche parte, o il server SMTP dell'utente non supporta le funzionalità richieste.
In che modo alcuni sviluppatori esperti qui possono gestire questo? Esistono approcci diversi da quelli che ho elencato?
Modifica: ho completamente dimenticato il più ovvio di tutti, inviando un'e-mail di conferma! Grazie a chi risponde per averlo segnalato. Sì, questo è piuttosto infallibile, ma richiede ulteriore seccatura da parte di tutti i soggetti coinvolti. L'utente deve recuperare un po 'di posta elettronica e lo sviluppatore deve ricordare i dati dell'utente prima ancora che siano confermati validi.