Per intercettare le eccezioni in modo "centralizzato", puoi usare il componente TApplicationEvents che dispone di un evento appositamente progettato.

L'invio di email si può fare tranquillamente con Indy Components, in particolare usando il componente TIdSMTP che è il client SMTP in grado di collegarsi ad un server che supporta questo protocollo per l'invio di un messaggio.

Sulla memorizzazione e invio successivo, basta richiamare (fai una ricerca) la funzione API che verifica lo stato della connessione e, nel caso in cui sia negativo, memorizzare le informazioni sull'errore in un file di testo, ad esempio, al posto di inviarlo via SMTP.

L'invio dilazionato avverrà poi secondo le convenzioni e le tempistiche che preferisci.

Ciao!