Відмови електронної пошти та сповіщення про доставку

Надсилаючи електронний лист, ви хочете знати, чи успішно він був доставлений одержувачу. Не менш важливою є здатність виявляти та керувати відмовами електронної пошти, які виникають, коли електронний лист не може бути доставлений. Вони можуть виникнути з різних причин, зокрема недійсні адреси електронної пошти, заповнені поштові скриньки або проблеми з сервером. Виявлення цих відмов є життєво важливим для підтримки чистого та актуального списку електронних листів і забезпечення того, що ваші повідомлення досягають потрібних людей. У цій статті ми розглянемо, як ефективно обробляти повідомлення про відмову електронної пошти та сповіщення про доставку в середовищі C# .NET.

C# .NET API для обробки відмов електронної пошти та сповіщень про доставку

Щоб ефективно керувати повідомленнями про відмову електронної пошти та сповіщеннями про доставку в C# .NET, ми будемо використовувати бібліотеку Aspose.Email, яка пропонує повний набір інструментів і функцій для завдань, пов’язаних з електронною поштою. Aspose.Email for .NET. Ви можете використати потенціал API, придбавши його DLL через завантажити або встановивши його з NuGet за допомогою такої команди:

PM> Install-Package Aspose.Email

Надсилання електронного листа зі сповіщеннями про доставку

Наведений нижче фрагмент коду демонструє, як створити повідомлення електронної пошти та налаштувати сповіщення про доставку за допомогою Aspose.Email. Цей код дозволяє створювати повідомлення електронної пошти, вказувати адреси відправника та одержувача, а також налаштовувати сповіщення про успішну та невдалу доставку. Крім того, він додає заголовки MIME до повідомлення для більш повного відстеження. Код виконує такі дії:

  1. Створення нового електронного повідомлення: код починається зі створення нового об’єкта MailMessage. MailMessage — це клас, який представляє повідомлення eml, яке можна надіслати.

  2. Налаштування сповіщень про доставку: DeliveryNotificationOptions налаштовано як OnSuccess, так і OnFailure. Це означає, що відправник хотів би отримати звіт про доставку, якщо повідомлення було доставлено успішно або якщо доставка не вдається.

  3. Додайте заголовки MIME для сповіщень про читання та видалення: заголовки об’єкта повідомлення використовуються для додавання заголовків «Read-Receipt-To» та «Disposition-Notification-To» до електронної пошти відправника. Ці заголовки запитують сповіщення про читання та видалення на адресу електронної пошти відправника після отримання та обробки електронного листа одержувачем відповідно.

  4. Налаштуйте клієнт SMTP: клас SmtpClient використовується для надсилання повідомлень електронної пошти. Екземпляр цього класу створюється із зазначеними обліковими даними хоста та користувача.

  5. Надіслати повідомлення: нарешті, метод Send об’єкта SmtpClient викликається з об’єктом MailMessage як аргументом для надсилання електронного листа.

// Створіть повідомлення
MailMessage msg = new MailMessage();
msg.From = "sender@sender.com";
msg.To = "receiver@receiver.com";
msg.Subject = "the subject of the message";

// Налаштуйте сповіщення про доставку для успішних і невдалих повідомлень і додайте заголовки 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");

// Надішліть повідомлення
SmtpClient client = new SmtpClient("host", "username", "password");
client.Send(msg);

Обробка відмов електронної пошти

Окрім забезпечення успішної доставки електронної пошти, ви можете використовувати функції бібліотеки для обробки відмов. Наведений нижче зразок коду демонструє, як завантажити та перевірити статус відхиленого повідомлення електронної пошти. Він отримує та відображає важливу інформацію про відхилений електронний лист, як-от ім’я файлу, статус відхилення, дію, одержувача, причину, статус та адресу електронної пошти одержувача з вихідного повідомлення. Код виконує такі дії:

  1. Код починається зі створення екземпляра класу MailMessage для завантаження повідомлення електронної пошти з указаного файлу за допомогою методу Load.

  2. Потім він перевіряє, чи електронний лист було відхилено, викликаючи метод CheckBounced. Результат цієї операції зберігається в об’єкті BounceResult.

  3. Потім код продовжує друк FileName на консолі, надаючи детальну інформацію про повідомлення за допомогою таких властивостей:

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();

Висновок

У цій статті ми звернули вашу увагу на важливість відхилень електронної пошти та сповіщень про доставку. Ми також надали способи їх обробки, підкріплені зразками коду. Тепер у вашому розпорядженні є потужні інструменти для забезпечення успішної доставки електронних листів і керування будь-якими відмовами, які можуть виникнути. Впровадивши ці практики у свої проекти, ви зможете досягти ефективного спілкування електронною поштою в середовищі C# .NET і переконатися, що ваші повідомлення досягнуть одержувачів.

Щоб отримати детальнішу інформацію чи інші функції Aspose.Email for .NET, ви можете звернутися до нашої документації. Якщо у вас виникнуть запитання або виникнуть труднощі, відвідайте наш форум.

Дивись також