Je viens de voir un article sur l'envoi d'e-mails dans .NET "Envoi d'e-mails à partir de pages asp.net" et j'ai vu que les classes sous l'espace de noms System.Web.Mail sont toujours utilisées. Nous savons tous que sous .NET 1.1, la plupart des classes de cet espace de noms sont utilisées pour envoyer des e-mails. L'utilisation de la méthode statique Send de SmtpMail peut facilement envoyer des e-mails, mais comme cette classe appelle des opérations sur Windows 2000 et supérieur, le composant CDO du système. est utilisé pour envoyer des e-mails. Quelle que soit l'erreur, cela indiquera que l'objet CDO.Message n'est pas accessible ou d'autres exceptions CDO.Message. Nous ne pouvons pas obtenir d'informations très détaillées sur les exceptions, ce qui entraîne de gros inconvénients pour notre débogage. Surtout lorsque nous avons besoin d'une vérification Smtp, nous devons ajouter trois définitions d'en-tête de courrier à MailMessage, ce qui est relativement gênant. Eh bien, sous .NET 2.0, la fonction d'envoi d'emails a été très bien conçue. L'utilisation des classes de l'espace System.Net.Mail nous permet d'envoyer différents emails très simplement. Cependant, afin d'être compatible avec la version originale, l'espace System.Web.Mail n'a pas été supprimé et les classes de cet espace ont également été marquées comme obsolètes. Si vous utilisez des classes .NET 2.0 pour compiler, vous le serez. invité à utiliser la classe d'espace System.Web.Mail à la place.
Voyons maintenant ce qui doit être fait pour envoyer des e-mails. Ici, j'ai également trouvé un article dans le jardin sur l'envoi d'e-mails .NET 2.0, "Composant d'envoi d'e-mails basé sur l'espace de noms .NET 2.0 System.Net.Mail". envoyer et recevoir du courrier. Dans cet article, nous discutons uniquement de la façon de l'envoyer. J'ai l'impression qu'il n'utilise pas vraiment le fichier de configuration. Nous devons également spécifier nous-mêmes certaines informations du compte Stmp pour SmtpClient. En fait, il nous suffit de configurer le compte Smtp que nous utiliserons via web.config (ou app.config) :
<configuration>
<system.net>
<mailSettings>
<. smtp depuis =" [email protected] ">
<hôte réseau="smtp.tom.com" password=" " port="25" userName="hjf1223" defaultCredentials="false"/>
</smtp>
</mailSettings >
< /system.net>
</configuration>
Le système de configuration de .NET 2.0 est si puissant que l'on peut écrire la configuration ci-dessus très simplement sans se référer à aucune information. Comme ci-dessus, l'attribut from est la boîte aux lettres à partir de laquelle vous enverrez l'e-mail et l'hôte est l'adresse du serveur SMTP. Inutile de dire que le mot de passe, le port et le nom d'utilisateur doivent être notés. Quant aux informations d'identification par défaut, vous devez faire attention. Lorsque nous n'avons pas besoin du serveur SMTP pour vérifier l'utilisateur expéditeur, définissez-le sur false, sinon définissez-le sur true. La plupart des serveurs SMTP actuels nécessitent une authentification de l'utilisateur, donc définissez-le généralement sur true et laissez-le utiliser le nom d'utilisateur et le mot de passe. nous avons configuré pour vérifier s'il s'agit d'un utilisateur légitime.
Une fois le fichier de configuration écrit, l'étape suivante consiste à savoir comment appeler le programme. Après avoir écrit ce qui suit pour envoyer l'e-mail, vous vous sentirez très étrange. Est-ce vraiment aussi simple ? Oui, c'est aussi simple que cela, jetons un coup d'oeil :
MailMessage m_message = new MailMessage();
m_message.From =MailAddress(" [email protected] ");
"));
m_message.Subject = "Envoyer un courrier en utilisant .NET 2.0";
m_message.Body = "Très simple";
SmtpClient m_smtpClient = new SmtpClient();
m_smtpClient.Send(m_message);
Nous n'avons même pas un seul extra ligne de code, c'est-à-dire Construire un objet MailMessage, puis construire un SmtpClient et l'utiliser pour envoyer des e-mails directement. Par rapport à la méthode statique d'origine, il n'y a plus de code. Certains amis ici voudront peut-être demander ? D'où proviennent les informations du compte SMTP ? En fait, vous pouvez le déboguer. À ce stade, les attributs de l'objet m_smtpClient sont les valeurs configurées dans notre fichier de configuration précédent. Lors de la reconfiguration d'un SmtpClient, la valeur sous la section de configuration system.net sera automatiquement lue. Si l'utilisateur a configuré les informations smtp, elles seront automatiquement transférées vers l'objet SmtpClient actuel, puis utilisées pour envoyer des e-mails. Envoyer des e-mails dans .NET 2.0 demande beaucoup de travail et c'est très stable.
Résumé : Bien que sous .NET 2.0, il soit très simple d'utiliser System.Web.Mail pour envoyer des e-mails, et vous pouvez obtenir des informations d'exception plus détaillées lorsque des erreurs se produisent, mais parfois des problèmes peuvent vous rendre confus. La chose la plus courante qui se produit est que lorsque votre ordinateur est équipé d'un pare-feu antivirus, vous ne pourrez peut-être pas envoyer d'e-mails, mais le message d'invite vous empêche de diagnostiquer le problème. L'effet principal est que l'e-mail est refusé. Cette situation se produit car le pare-feu refuse notre utilisation du port 25, entraînant l'impossibilité de communiquer normalement avec le serveur SMTP. La solution est de le fermer. Je crois qu'il existe de nombreux cas sur Internet. Un autre point auquel il faut prêter une attention particulière est que la machine pour envoyer des emails doit être directement connectée au réseau externe. Puisque l'entreprise accède à Internet via un proxy, cela est particulièrement impressionnant. Il y a encore une chose à noter dans le code ci-dessus. La valeur From de l'objet MailMessage doit être la même que la valeur From dans le fichier de configuration. Il semble qu'il ne soit pas nécessaire de la définir ici.
D'accord, voici le code, j'espère qu'il pourra vous être utile http://hjf1223.cnblogs.com/archive/2006/07/06/444716.html