Rejeições de e-mail e notificações de entrega

Ao enviar um e-mail, você deseja saber se ele foi entregue com sucesso ao destinatário. Igualmente importante é a capacidade de detectar e gerenciar devoluções de e-mail, que ocorrem quando um e-mail não pode ser entregue. Eles podem acontecer por vários motivos, incluindo endereços de e-mail inválidos, caixas de correio cheias ou problemas de servidor. Detectar essas devoluções é vital para manter uma lista de e-mail limpa e atualizada e garantir que suas mensagens cheguem às pessoas certas. Neste artigo, exploraremos como lidar com eficácia com devoluções de e-mail e notificações de entrega no ambiente C# .NET.

API C# .NET para lidar com devoluções de e-mail e notificações de entrega

Para gerenciar com eficiência devoluções de e-mail e notificações de entrega em C# .NET, usaremos a biblioteca Aspose.Email, que oferece um conjunto abrangente de ferramentas e funcionalidades para tarefas relacionadas a e-mail. Aspose.Email para .NET. Você pode usar o potencial da API adquirindo sua DLL por meio de download ou instalando-a pelo NuGet usando o seguinte comando:

PM> Install-Package Aspose.Email

Enviando um e-mail com notificações de entrega

O trecho de código abaixo demonstra como criar uma mensagem de email e configurar notificações de entrega usando Aspose.Email. Este código permite criar uma mensagem de e-mail, especificar os endereços do remetente e do destinatário e configurar notificações de entrega para sucesso e falha. Além disso, adiciona cabeçalhos MIME à mensagem para um rastreamento mais abrangente. O código executa as seguintes etapas:

  1. Crie uma nova mensagem de email: o código começa criando um novo objeto MailMessage. MailMessage é uma classe que representa uma mensagem eml que pode ser enviada.

  2. Definir notificações de entrega: As DeliveryNotificationOptions são definidas como OnSuccess e OnFailure. Isso significa que o remetente gostaria de receber um relatório de entrega se a mensagem for entregue com sucesso ou se a entrega falhar.

  3. Adicionar cabeçalhos MIME para notificações de leitura e disposição: os cabeçalhos do objeto de mensagem são usados para adicionar cabeçalhos “Read-Receipt-To” e “Disposition-Notification-To” ao e-mail do remetente. Esses cabeçalhos solicitam notificações de leitura e disposição ao endereço de e-mail do remetente após o recebimento e manuseio do e-mail pelo destinatário, respectivamente.

  4. Configure o cliente SMTP: A classe SmtpClient é usada para enviar mensagens de e-mail. Uma instância desta classe é criada com as credenciais de host e usuário especificadas.

  5. Enviar a mensagem: Por fim, o método Send do objeto SmtpClient é chamado com o objeto MailMessage como argumento para enviar o email.

// Crie a mensagem
MailMessage msg = new MailMessage();
msg.From = "sender@sender.com";
msg.To = "receiver@receiver.com";
msg.Subject = "the subject of the message";

// Defina notificações de entrega para mensagens com êxito e com falha e adicione os cabeçalhos 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");

// Envie a mensagem
SmtpClient client = new SmtpClient("host", "username", "password");
client.Send(msg);

Tratamento de devoluções de e-mail

Além de garantir a entrega bem-sucedida de e-mails, você pode aproveitar os recursos da biblioteca para lidar com devoluções. O exemplo de código abaixo demonstra como carregar e verificar o status de uma mensagem de email devolvida. Ele recupera e exibe informações importantes sobre um e-mail devolvido, como nome do arquivo, status de devolução, ação, destinatário, motivo, status e endereço de e-mail do destinatário da mensagem original. O código executa as seguintes etapas:

  1. O código começa criando uma instância da classe MailMessage para carregar a mensagem de e-mail do arquivo especificado usando o método Load.

  2. Em seguida, ele verifica se o e-mail foi devolvido chamando o método CheckBounced. O resultado desta operação é armazenado em um objeto BounceResult.

  3. O código então imprime o fileName no console, fornecendo informações detalhadas sobre a mensagem por meio das seguintes propriedades:

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

Conclusão

Neste artigo, chamamos sua atenção para a importância das devoluções de e-mail e das notificações de entrega. Também fornecemos maneiras de lidar com eles com suporte em exemplos de código. Agora você tem ferramentas poderosas à sua disposição para permitir a entrega bem-sucedida de e-mails e gerenciar quaisquer devoluções que possam ocorrer. Ao incorporar essas práticas em seus projetos, você pode obter uma comunicação por email eficaz em um ambiente C# .NET e garantir que suas mensagens cheguem aos destinatários pretendidos.

Para informações mais detalhadas ou outros recursos do Aspose.Email for .NET você pode acessar nossa documentação. Caso você tenha dúvidas ou encontre alguma dificuldade, visite nosso fórum.

Veja também