Уведомления об отказе электронной почты и доставке

Отправляя электронное письмо, вы хотите знать, было ли оно успешно доставлено получателю. Не менее важной является возможность обнаруживать и управлять возвратами электронной почты, которые происходят, когда электронное письмо не может быть доставлено. Они могут произойти по разным причинам, включая неверные адреса электронной почты, переполненные почтовые ящики или проблемы с сервером. Обнаружение таких отказов жизненно важно для поддержания чистоты и актуальности списка адресов электронной почты и обеспечения того, чтобы ваши сообщения доходили до нужных людей. В этой статье мы рассмотрим, как эффективно обрабатывать возвраты электронной почты и уведомления о доставке в среде 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. Затем код выводит имя файла на консоль, предоставляя подробную информацию о сообщении через следующие свойства:

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 вы можете обратиться к нашей документации. Если у вас возникнут вопросы или возникнут трудности, посетите наш форум.

Смотрите также