In der neu veröffentlichten Version von ASP.NET 2.0 empfiehlt Microsoft die Verwendung des System.Web.Mail-Namespace nicht mehr und ersetzt ihn durch den neuen System.Net.Mail-Namespace. In dieser neuen Bibliothek wurden viele neue Funktionen eingeführt, aber auch einige kleinere Fehler in der Art und Weise, wie E-Mails gesendet werden.
1. E-Mails senden
Bevor wir diese kleinen Fehler im Detail besprechen, schauen wir uns einen Beispielcode an (wir gehen davon aus, dass Sie „using System.Net.Mail“ am Anfang der Datei hinzugefügt haben):
MailMessage msg = new MailMessage();
msg.From = new MailAddress(" [email protected] ", "Name der Person");
msg.To.Add(new MailAddress(" [email protected] ", "Name des Adressaten");
msg.To.Add(new MailAddress(" [email protected] ", "Name des Adressaten 2");
msg.Subject = "Nachrichtenbetreff";
msg.Body = "Inhalt des E-Mail-Textes";
msg.IsBodyHtml = true;
msg.Priority = MailPriority.High;
SmtpClient c = new SmtpClient("mailserver.domain.com");
c.Send(msg);
Der obige Code unterscheidet sich nicht wesentlich von der Implementierung in der vorherigen Version, abgesehen von einigen geringfügigen Änderungen bei der Angabe der Nachricht. Anstatt selbst eine Adresse zu erstellen, können Sie dies dem System überlassen. Wenn Sie eine E-Mail-Adresse und einen Namen angeben, wird in der Nachricht automatisch Folgendes angezeigt:
„Name der Person“ < [email protected] >
Dies ist das „richtige“ Format für eine E-Mail-Adresse. Natürlich können Sie auf die gleiche Weise wie oben beschrieben auch mehrere Adressen zu den An-, CC- und BCC-Sätzen hinzufügen. Das programmgesteuerte Versenden einer großen Anzahl von Nachrichten auf diese Weise ist viel einfacher als das Versenden jeder Nachricht einzeln. Fügen Sie einfach mehrere Adressen zum BCC-Attribut hinzu, um einen Massenversand zu erreichen.
2. Vorhandene Probleme
Lassen Sie uns nun die vorhandenen kleinen Fehler analysieren.
Wie bereits erwähnt, weist dieser neue Namespace einige kleinere Fehler auf. Der erste Grund besteht darin, dass beim Versenden einer E-Mail die Header-Informationen vollständig in Kleinbuchstaben hinzugefügt werden. Die RFC-Spezifikation für SMTP-E-Mails legt jedoch nicht fest, wie E-Mail-Header groß geschrieben werden sollen. Viele Spam-Filterprogramme schränken jedoch E-Mail-Nachrichten ein, deren Header nicht ordnungsgemäß großgeschrieben werden.
Ein weiterer Fehler betrifft die Prioritätseinstellungen – mit Prioritätseinstellungen können Benutzer die Wichtigkeit einer Nachricht im Mail-Client festlegen. Aufgrund der Art und Weise, wie der E-Mail-Header formatiert ist (in Kleinbuchstaben umgewandelt), erkennt mein E-Mail-Programm (Eudora) die entsprechende Prioritätsmarkierung nicht und markiert diese E-Mail daher nicht ausdrücklich als wichtig. Obwohl dies trivial erscheinen mag, scheint es keinen offensichtlichen Grund für den Wechsel zu einer neuen Version von System.Web.Mail zu geben.
Daher werde ich dieses Problem weiter untersuchen, wenn ich wirklich keine gute Lösung finden kann, dann gehe ich einfach zum vorherigen System.Web.Mail zurück, um das oben genannte Warnproblem effektiver zu lösen.