Si dovrebbe inviare nuovamente il messaggio una volta che ci sono prove della mancata consegna.
Alcuni provider di posta elettronica utilizzano un periodo di tempo per tentare di recapitare l'e-mail. Un tipico il valore predefinito è 48 ore. Durante questo periodo di 48 ore, potrebbero tentare di recapitare l'email N numero di volte, dove N potrebbe essere 8, 10, ecc.
Questo è fatto per aiutare su errori di posta elettronica transitori. Ad esempio, cosa succede se la casella di posta in arrivo della persona è piena o il fornitore di servizi è andato giù. Tutti questi errori restituiscono specifici, ad esempio la chiamata al servizio SMTP restituirà 422 se la casella di posta è piena. Una persona potrebbe cancellare parte della posta e quindi quel messaggio sarebbe passato in quel caso in un tentativo successivo.
Per un elenco di tutti i codici, vedi qui:
link
Per questi tipi di errori, il provider riproverà il messaggio (automaticamente) di nuovo in un secondo momento. Alcuni ritorni sono fatali, altri possono essere classificati come transitori che possono risolversi dopo un certo periodo di tempo.
Infine, dopo un periodo di tempo (ad esempio 48 ore) se l'e-mail non viene ancora inviata, segnalerà un errore di consegna. A quel punto, la consegna è considerata un fallimento e sarebbe necessario un intervento manuale.
Solo allora vorremmo tentare un'altra conferma o forse contattare l'utente per vedere se gli errori possono essere corretti.
L'applicazione web che stai progettando dovrebbe tenere conto di questi fattori quando invii email.