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