Dans la nouvelle version d'ASP.NET 2.0, Microsoft ne recommande plus d'utiliser l'espace de noms System.Web.Mail et le remplace par le nouvel espace de noms System.Net.Mail. De nombreuses nouvelles fonctionnalités sont introduites dans cette nouvelle bibliothèque, mais avec elles quelques bugs mineurs dans la manière dont les e-mails sont envoyés.
1. Envoi de courrier
Avant de discuter de ces petites erreurs en détail, regardons un exemple de code (nous supposons que vous avez ajouté « using System.Net.Mail » au début du fichier) :
MailMessage msg = new MailMessage();
msg.From = new MailAddress(" [email protected] ", " Nom de la personne ");
msg.To.Add(new MailAddress(" [email protected] ", "Nom du destinataire");
msg.To.Add(new MailAddress(" [email protected] ", "Nom du destinataire 2");
msg.Subject = "Objet du message" ;
msg.Body = "Contenu du corps du courrier";
msg.IsBodyHtml = true ;
msg.Priority = MailPriority.High;
SmtpClient c = new SmtpClient("mailserver.domain.com");
c.Send(msg);
Le code ci-dessus n'est pas très différent de l'implémentation de la version précédente, à l'exception de quelques modifications mineures dans la spécification du message. Au lieu de créer vous-même une adresse, vous pouvez laisser le système le faire à votre place. Si vous spécifiez une adresse e-mail et un nom, le message suivant s'affichera automatiquement :
"Nom de la personne" < [email protected] >
Il s'agit du format "correct" pour une adresse e-mail. Bien entendu, vous pouvez ajouter plusieurs adresses aux ensembles To, CC et BCC exactement de la même manière que ci-dessus. Envoyer un grand nombre de messages par programmation de cette manière est beaucoup plus simple que d'envoyer chaque message individuellement - ajoutez simplement plusieurs adresses à l'attribut BCC pour obtenir un envoi de masse.
2. Problèmes existants
Analysons maintenant les petites erreurs qui existent.
Comme mentionné précédemment, ce nouvel espace de noms comporte quelques bugs mineurs. La première est que lorsque vous envoyez un e-mail, les informations d’en-tête sont ajoutées entièrement en lettres minuscules. Cependant, la spécification RFC pour les e-mails SMTP ne précise pas comment les en-têtes d'e-mails doivent être capitalisés ; cependant, de nombreux programmes de filtrage anti-spam restreignent les e-mails dont les en-têtes ne sont pas correctement capitalisés ;
Une autre erreur concerne les paramètres de priorité : avec les paramètres de priorité, les utilisateurs peuvent spécifier l'importance d'un message dans le client de messagerie. En raison de la façon dont l'en-tête de l'e-mail est formaté (converti en minuscules), mon programme de messagerie (Eudora) ne reconnaît pas l'indicateur de priorité correspondant et ne marque donc pas spécifiquement cet e-mail comme important. Bien que cela puisse paraître trivial, il ne semble y avoir aucune raison évidente de passer à une nouvelle version de System.Web.Mail.
Par conséquent, je continuerai à explorer ce problème. Si je ne trouve vraiment pas de bon remède, je reviendrai simplement au System.Web.Mail précédent pour résoudre plus efficacement le problème d'avertissement ci-dessus.