Na versão recém-lançada do ASP.NET 2.0, a Microsoft não recomenda mais o uso do namespace System.Web.Mail e o substitui pelo novo namespace System.Net.Mail. Existem muitos novos recursos introduzidos nesta nova biblioteca, mas com eles alguns pequenos bugs na forma como os e-mails são enviados.
1. Enviando mensagens
Antes de discutir esses pequenos erros em detalhes, vamos dar uma olhada em um exemplo de código (assumimos que você adicionou "using System.Net.Mail" no início do arquivo):
MailMessage msg = new MailMessage();
msg.From = new MailAddress(" endereço@domínio.com ", "Nome da Pessoa");
msg.To.Add(new MailAddress(" destino@domínio.com ", "Nome do destinatário");
msg.To.Add(new MailAddress(" [email protected] ", "Nome do destinatário 2");
msg.Subject = "Assunto da mensagem";
msg.Body = "Conteúdo do corpo do e-mail";
msg.IsBodyHtml = verdadeiro;
msg.Priority = MailPriority.High;
SmtpClient c = new SmtpClient("mailserver.domain.com");
c.Send(msg);
O código acima não é muito diferente da implementação da versão anterior, exceto por algumas pequenas alterações na especificação da mensagem. Em vez de construir um endereço sozinho, você pode deixar que o sistema faça isso por você. Se você especificar um endereço de e-mail e um nome, o seguinte será exibido automaticamente na mensagem:
"Nome da pessoa" < destino@domínio.com >
Este é o formato "correto" para um endereço de e-mail. Claro, você pode adicionar vários endereços aos conjuntos Para, CC e BCC exatamente da mesma maneira acima. Enviar um grande número de mensagens programaticamente dessa maneira é muito mais fácil do que enviar cada mensagem individualmente - basta adicionar vários endereços ao atributo CCO para obter o envio em massa.
2. Problemas existentes
Agora vamos analisar os pequenos erros que existem.
Conforme mencionado anteriormente, este novo namespace vem com alguns pequenos bugs. A primeira é que quando você envia um e-mail, as informações do cabeçalho são adicionadas inteiramente em letras minúsculas. No entanto, a especificação RFC para e-mails SMTP não especifica como os cabeçalhos de e-mail devem ser capitalizados. No entanto, muitos programas de filtragem de spam restringem mensagens de e-mail cujos cabeçalhos não estão devidamente capitalizados.
Outro erro tem a ver com configurações de prioridade - com configurações de prioridade, os usuários podem especificar a importância de uma mensagem no cliente de email. Devido à forma como o cabeçalho do e-mail é formatado (convertido para letras minúsculas), meu programa de e-mail (Eudora) não reconhece o sinalizador de prioridade correspondente e, portanto, não marca especificamente este e-mail como importante. Embora isso possa parecer trivial, parece não haver nenhuma razão óbvia para mudar para uma nova versão do System.Web.Mail.
Portanto, continuarei a explorar esse problema. Se realmente não conseguir encontrar uma boa solução, voltarei ao System.Web.Mail anterior para resolver o problema de aviso acima de forma mais eficaz.