Rimbalzi di e-mail e notifiche di consegna

Quando invii un’e-mail, vuoi sapere se è stata consegnata correttamente al destinatario. Altrettanto importante è la capacità di rilevare e gestire i mancati recapiti delle e-mail, che si verificano quando un’e-mail non può essere consegnata. Possono verificarsi per vari motivi, inclusi indirizzi e-mail non validi, caselle di posta piene o problemi del server. Rilevare questi rimbalzi è fondamentale per mantenere un elenco di posta elettronica pulito e aggiornato e garantire che i tuoi messaggi raggiungano le persone giuste. In questo articolo esploreremo come gestire in modo efficace i messaggi di posta elettronica restituiti al mittente e le notifiche di consegna in ambiente C# .NET.

API C# .NET per gestire i mancati messaggi di posta elettronica e le notifiche di recapito

Per gestire in modo efficiente i rimbalzi di posta elettronica e le notifiche di consegna in C# .NET, utilizzeremo la libreria Aspose.Email, che offre un set completo di strumenti e funzionalità per le attività relative alla posta elettronica. Aspose.Email for .NET. Puoi sfruttare il potenziale dell’API acquisendo la sua DLL tramite download o installandola da NuGet utilizzando il comando seguente:

PM> Install-Package Aspose.Email

Invio di un’e-mail con notifiche di consegna

Lo snippet di codice seguente mostra come creare un messaggio di posta elettronica e impostare le notifiche di consegna utilizzando Aspose.Email. Questo codice consente di creare un messaggio e-mail, specificare gli indirizzi del mittente e del destinatario e configurare le notifiche di consegna per l’esito positivo e negativo. Inoltre, aggiunge intestazioni MIME al messaggio per un monitoraggio più completo. Il codice esegue i seguenti passaggi:

  1. Crea un nuovo messaggio di posta elettronica: il codice inizia creando un nuovo oggetto MailMessage. MailMessage è una classe che rappresenta un messaggio eml che può essere inviato.

  2. Imposta notifiche di consegna: le DeliveryNotificationOptions sono impostate su OnSuccess e OnFailure. Ciò significa che il mittente vorrebbe ricevere un rapporto di consegna se il messaggio viene consegnato con successo o se la consegna fallisce.

  3. Aggiungi intestazioni MIME per notifiche di lettura e disposizione: le intestazioni dell’oggetto messaggio vengono utilizzate per aggiungere intestazioni “Read-Receipt-To” e “Disposition-Notification-To” con l’e-mail del mittente. Queste intestazioni richiedono notifiche di lettura e disposizione all’indirizzo e-mail del mittente rispettivamente al momento della ricezione e della gestione dell’e-mail da parte del destinatario.

  4. Configurare il client SMTP: la classe SmtpClient viene utilizzata per inviare messaggi di posta elettronica. Viene creata un’istanza di questa classe con le credenziali dell’host e dell’utente specificate.

  5. Invia il messaggio: infine, il metodo Send dell’oggetto SmtpClient viene chiamato con l’oggetto MailMessage come argomento per inviare l’e-mail.

// Crea il messaggio
MailMessage msg = new MailMessage();
msg.From = "sender@sender.com";
msg.To = "receiver@receiver.com";
msg.Subject = "the subject of the message";

// Imposta le notifiche di consegna per i messaggi riusciti e non riusciti e aggiungi le intestazioni MIME
msg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess | DeliveryNotificationOptions.OnFailure;
msg.Headers.Add("Read-Receipt-To", "sender@sender.com");
msg.Headers.Add("Disposition-Notification-To", "sender@sender.com");

// Invia il messaggio
SmtpClient client = new SmtpClient("host", "username", "password");
client.Send(msg);

Gestione dei rimbalzi di posta elettronica

Oltre a garantire il corretto recapito delle e-mail, puoi sfruttare le funzionalità della libreria per gestire i mancati recapiti. L’esempio di codice riportato di seguito illustra come caricare e verificare lo stato di un messaggio di posta elettronica respinto. Recupera e visualizza informazioni importanti su un’e-mail respinta, come il nome del file, lo stato del mancato recapito, l’azione, il destinatario, il motivo, lo stato e l’indirizzo e-mail del destinatario del messaggio originale. Il codice esegue i seguenti passaggi:

  1. Il codice inizia creando un’istanza della classe MailMessage per caricare il messaggio di posta elettronica dal file specificato utilizzando il metodo Load.

  2. Quindi controlla se l’e-mail è stata respinta chiamando il metodo CheckBounced. Il risultato di questa operazione viene archiviato in un oggetto BounceResult.

  3. Il codice procede quindi a stampare il fileName sulla console fornendo le informazioni dettagliate sul messaggio attraverso le seguenti proprietà:

MailMessage mail = MailMessage.Load(fileName);
BounceResult result = mail.CheckBounced();
Console.WriteLine(fileName);
Console.WriteLine("IsBounced : " + result.IsBounced);
Console.WriteLine("Action : " + result.Action);
Console.WriteLine("Recipient : " + result.Recipient);
Console.WriteLine();
Console.WriteLine("Reason : " + result.Reason);
Console.WriteLine("Status : " + result.Status);
Console.WriteLine("OriginalMessage ToAddress 1: " + result.OriginalMessage.To[0].Address);
Console.WriteLine();

Conclusione

In questo articolo, abbiamo attirato la tua attenzione sull’importanza dei messaggi mancati e delle notifiche di consegna. Abbiamo inoltre fornito modalità di gestione supportate da esempi di codice. Ora hai potenti strumenti a tua disposizione per consentire la consegna corretta delle e-mail e per gestire eventuali mancati recapiti che potrebbero verificarsi. Incorporando queste pratiche nei tuoi progetti, puoi ottenere una comunicazione e-mail efficace in un ambiente C# .NET e garantire che i tuoi messaggi raggiungano i destinatari previsti.

Per informazioni più dettagliate o altre funzionalità di Aspose.Email for .NET è possibile rivolgersi alla nostra documentazione. In caso di domande o di difficoltà, visitare il nostro forum.

Guarda anche