Ich habe gerade einen Artikel über das Senden von E-Mails in .NET „Senden von E-Mails von asp.net-Seiten“ gesehen und festgestellt, dass die Klassen unter dem System.Web.Mail-Namespace immer noch verwendet werden. Wir alle wissen, dass unter .NET 1.1 die meisten Klassen in diesem Namespace zum Senden von E-Mails verwendet werden. Mit der statischen Methode „Senden“ von SmtpMail können problemlos E-Mails gesendet werden. Da diese Klasse jedoch Vorgänge unter Windows 2000 und höher aufruft, ist dies die CDO-Komponente des Systems wird zum Senden von E-Mails verwendet, es führt dazu, dass auf das CDO.Message-Objekt nicht zugegriffen werden kann oder andere CDO.Message-Ausnahmen vorliegen, was zu großen Unannehmlichkeiten für unser Debuggen führt. Insbesondere wenn wir eine SMTP-Überprüfung benötigen, müssen wir MailMessage drei Mail-Header-Definitionen hinzufügen, was relativ mühsam ist. Nun, unter .NET 2.0 wurde die Funktion zum Versenden von E-Mails sehr gut gestaltet. Durch die Verwendung der Klassen im System.Net.Mail-Bereich können wir verschiedene E-Mails sehr einfach versenden. Um jedoch mit der Originalversion kompatibel zu sein, wurde der System.Web.Mail-Bereich nicht gelöscht, und die Klassen in diesem Bereich wurden ebenfalls mit „Veraltet“ markiert. Wenn Sie zum Kompilieren .NET 2.0-Klassen verwenden, ist dies der Fall aufgefordert, stattdessen die Space-Klasse System.Web.Mail zu verwenden.
Schauen wir uns nun an, was zum Senden von E-Mails getan werden muss. Hier habe ich auch einen Artikel über das Senden von E-Mails mit .NET 2.0 gefunden: „E-Mail-Versandkomponente basierend auf dem .NET 2.0-System.Net.Mail-Namespace“. Senden und Empfangen von Post. In diesem Artikel besprechen wir nur, wie man es sendet. Ich habe das Gefühl, dass die Konfigurationsdatei nicht wirklich verwendet wird. Wir müssen auch selbst einige Smtp-Kontoinformationen für SmtpClient angeben. Tatsächlich müssen wir nur das Smtp-Konto, das wir verwenden werden, über web.config (oder app.config) konfigurieren:
<configuration>
<system.net>
<mailSettings>
< smtp von =" [email protected] ">
<network host="smtp.tom.com" passwort=" " port="25" userName="hjf1223" defaultCredentials="false"/>
</smtp>
</mailSettings >
</system.net>
</configuration>
Das Konfigurationssystem von .NET 2.0 ist so leistungsstark, dass wir die obige Konfiguration sehr einfach schreiben können, ohne auf irgendwelche Informationen zurückzugreifen. Wie oben ist das From-Attribut das Postfach, von dem aus Sie die E-Mail senden, und der Host ist die SMTP-Serveradresse. Selbstverständlich müssen Passwort, Port und Benutzername beachtet werden Wenn wir den SMTP-Server nicht zur Überprüfung des sendenden Benutzers benötigen, setzen Sie ihn auf „false“, ansonsten auf „true“. Die meisten aktuellen SMTP-Server erfordern eine Benutzerauthentifizierung. Setzen Sie ihn daher im Allgemeinen auf „true“ und lassen Sie ihn den Benutzernamen und das Passwort verwenden Wir haben es so konfiguriert, dass überprüft wird, ob es sich um einen legitimen Benutzer handelt.
Nachdem die Konfigurationsdatei geschrieben wurde, besteht der nächste Schritt darin, das Programm aufzurufen. Nachdem ich Folgendes geschrieben habe, um die E-Mail zu senden, werden Sie sich sehr seltsam fühlen. Ist das wirklich so einfach? Ja, so einfach ist das, werfen wir einen Blick darauf:
MailMessage m_message = new MailMessage();
m_message.From = new MailAddress(" [email protected] ");
m_message.To.Add(new MailAddress(" [email protected] "));
m_message.Subject = "Mail mit .NET 2.0 senden";
m_message.Body = "Sehr einfach";
SmtpClient m_smtpClient = new SmtpClient();
m_smtpClient.Send(m_message);
Wir haben nicht einmal ein einziges Extra Codezeile: Erstellen Sie ein MailMessage-Objekt, erstellen Sie dann einen SmtpClient und verwenden Sie ihn, um E-Mails direkt zu senden. Im Vergleich zur ursprünglichen statischen Methode gibt es keinen Code mehr. Einige Freunde hier möchten vielleicht fragen? Woher kommen die SMTP-Kontoinformationen? Tatsächlich können Sie es zu diesem Zeitpunkt debuggen. Die Attribute im m_smtpClient-Objekt sind die in unserer vorherigen Konfigurationsdatei konfigurierten Werte. Bei der Neukonfiguration eines SmtpClient wird der Wert im Abschnitt „system.net-Konfiguration“ automatisch gelesen. Wenn der Benutzer SMTP-Informationen konfiguriert hat, werden diese automatisch an das aktuelle SmtpClient-Objekt übertragen und dann zum Senden von E-Mails verwendet. Das Versenden von E-Mails in .NET 2.0 ist sehr arbeitsintensiv und sehr stabil.
Zusammenfassung: Unter .NET 2.0 ist es zwar sehr einfach, System.Web.Mail zum Senden von E-Mails zu verwenden, und Sie können detailliertere Ausnahmeinformationen erhalten, wenn Fehler auftreten, aber manchmal können Probleme Sie verwirren. Am häufigsten passiert es, dass Sie, wenn auf Ihrem Computer eine Antiviren-Firewall installiert ist, möglicherweise keine E-Mails senden können, die entsprechende Meldung Sie jedoch daran hindert, das Problem zu diagnostizieren. Der Haupteffekt besteht darin, dass die E-Mail abgelehnt wird. Diese Situation tritt auf, weil die Firewall uns die Nutzung von Port 25 verweigert, was dazu führt, dass keine normale Kommunikation mit dem SMTP-Server möglich ist. Die Lösung besteht darin, es zu schließen. Ich glaube, es gibt viele Fälle im Internet. Ein weiterer Punkt, auf den besonders geachtet werden muss, ist, dass das Gerät zum Versenden von E-Mails direkt mit dem externen Netzwerk verbunden sein muss. Da das Unternehmen über einen Proxy auf das Internet zugreift, ist dies besonders beeindruckend. Im obigen Code ist noch etwas zu beachten: Der From-Wert des MailMessage-Objekts muss mit dem From-Wert in der Konfigurationsdatei übereinstimmen. Es scheint, dass es nicht erforderlich ist, ihn hier festzulegen.
Okay, hier ist der Code, ich hoffe, er kann Ihnen hilfreich sein http://hjf1223.cnblogs.com/archive/2006/07/06/444716.html