- C# .NET API для обробки повідомлень про відмову електронної пошти та доставки
- Надсилання електронного листа зі сповіщеннями про доставку
- Обробка відмов електронної пошти
Надсилаючи електронний лист, ви хочете знати, чи успішно він був доставлений одержувачу. Не менш важливою є здатність виявляти та керувати відмовами електронної пошти, які виникають, коли електронний лист не може бути доставлений. Вони можуть виникнути з різних причин, зокрема недійсні адреси електронної пошти, заповнені поштові скриньки або проблеми з сервером. Виявлення цих відмов є життєво важливим для підтримки чистого та актуального списку електронних листів і забезпечення того, що ваші повідомлення досягають потрібних людей. У цій статті ми розглянемо, як ефективно обробляти повідомлення про відмову електронної пошти та сповіщення про доставку в середовищі C# .NET.
C# .NET API для обробки відмов електронної пошти та сповіщень про доставку
Щоб ефективно керувати повідомленнями про відмову електронної пошти та сповіщеннями про доставку в C# .NET, ми будемо використовувати бібліотеку Aspose.Email, яка пропонує повний набір інструментів і функцій для завдань, пов’язаних з електронною поштою. Aspose.Email for .NET. Ви можете використати потенціал API, придбавши його DLL через завантажити або встановивши його з NuGet за допомогою такої команди:
PM> Install-Package Aspose.Email
Надсилання електронного листа зі сповіщеннями про доставку
Наведений нижче фрагмент коду демонструє, як створити повідомлення електронної пошти та налаштувати сповіщення про доставку за допомогою Aspose.Email. Цей код дозволяє створювати повідомлення електронної пошти, вказувати адреси відправника та одержувача, а також налаштовувати сповіщення про успішну та невдалу доставку. Крім того, він додає заголовки MIME до повідомлення для більш повного відстеження. Код виконує такі дії:
Створення нового електронного повідомлення: код починається зі створення нового об’єкта MailMessage. MailMessage — це клас, який представляє повідомлення eml, яке можна надіслати.
Налаштування сповіщень про доставку: DeliveryNotificationOptions налаштовано як OnSuccess, так і OnFailure. Це означає, що відправник хотів би отримати звіт про доставку, якщо повідомлення було доставлено успішно або якщо доставка не вдається.
Додайте заголовки MIME для сповіщень про читання та видалення: заголовки об’єкта повідомлення використовуються для додавання заголовків «Read-Receipt-To» та «Disposition-Notification-To» до електронної пошти відправника. Ці заголовки запитують сповіщення про читання та видалення на адресу електронної пошти відправника після отримання та обробки електронного листа одержувачем відповідно.
Налаштуйте клієнт SMTP: клас SmtpClient використовується для надсилання повідомлень електронної пошти. Екземпляр цього класу створюється із зазначеними обліковими даними хоста та користувача.
Надіслати повідомлення: нарешті, метод 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);
Обробка відмов електронної пошти
Окрім забезпечення успішної доставки електронної пошти, ви можете використовувати функції бібліотеки для обробки відмов. Наведений нижче зразок коду демонструє, як завантажити та перевірити статус відхиленого повідомлення електронної пошти. Він отримує та відображає важливу інформацію про відхилений електронний лист, як-от ім’я файлу, статус відхилення, дію, одержувача, причину, статус та адресу електронної пошти одержувача з вихідного повідомлення. Код виконує такі дії:
Код починається зі створення екземпляра класу MailMessage для завантаження повідомлення електронної пошти з указаного файлу за допомогою методу Load.
Потім він перевіряє, чи електронний лист було відхилено, викликаючи метод CheckBounced. Результат цієї операції зберігається в об’єкті BounceResult.
Потім код продовжує друк FileName на консолі, надаючи детальну інформацію про повідомлення за допомогою таких властивостей:
result.IsBounced property represents whether the email has been bounced or not.
результат.Дія property contains the action associated with the bounce.
результат.Одержувач property is indicating the recipient of the bounced email.
результат.Причина property provides the reason for the email bounce.
результат.Статус property is representing the status of the bounce.
result.OriginalMessage.To[0].Address property contains the email address of the recipient from the original message.
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, ви можете звернутися до нашої документації. Якщо у вас виникнуть запитання або виникнуть труднощі, відвідайте наш форум.