DevTrain

Autor: Tobi Ulm

SMTP Dienst und eMail aus ASP.NET per System.Web.Util

eMails aus Web Seiten zu verschicken ist ein Feature das uns täglich im WorldWideWeb begegnet.
In ASP gab es das Objekt CDONTS um eMails zu versenden. Im .NET Framework gibt es für Web Anwendungen einen Namespace namens Util, welcher zwei Klassen SmtpMail und MailMassage beinhaltet. Diese beiden Klassen sind mit der selben Funktionalität  des bereits erwähnten CDONTS Objekts ausgestattet. Um eMails am Windows System zu verschicken benötigen Sie den funktionierenden SMTP Server des IIS. Benutzen Sie Windows 2000 (egal ob Professional oder Server) können Sie diesen einfach über das Dialog - Fenster Systemsteuerung/Software unter dem Punkt Windows Komponenten hinzufügen/ entfernen Installieren. Wenn Sie Windows NT 4.0 benutzen finden Sie den SMTP Dienst auf der Windows NT Option Pack CD. Der SMTP Dienst ist nach der Installation einfach über die Management Konsole des IIS zu konfigurieren. Nach der Installation finden Sie folgende Verzeichnisstruktur unterhalb des wwwroot/InetPub Verzeichnisses für den SMTP Server:
- MAILROOT
 - BadMail:
  Dieser Ordner enthält eMail Nachrichten die Fehler enthalten (wie zum Beispiel eine ungültige eMail Adresse) und vom Dienst nicht versendet werden konnten.
 - MailBox
  
 - Drop:
  In diesem Ordner befinden sich alle eMail's die Ihr SMTP Dienst erhält.
 - Queue:
  Hier finden Sie eMail die momentan in Bearbeitung durch einen eMail Client wie Outlook Express sind.
 - Pickup

So nun zum praktischen Teil. Wie bereits erwähnt benutzen wir die Klassen SmtpMail und MailMessage.  Die Klasse SmtpMail beinhaltet eine Methode Namens SendMail() welche den eigentlichen Versendevorgang der eMail durchführt. Der Versendevorgang ist eigentlich nichts anderes als das SmtpMail eine Text Datei in dem Queue Verzeichnis des SMTP Dienstes erzeugt und der SMTP Dienst diese dann nach benutzerdefinierten Einstellungen versendet.

...
using System.Web.Util;
...
SmtpMail.Send("TobiasU@ppedv.de", "HannesP@ppedv.de", "ASP-Konferenz", "Wir benötigen noch einen ASP Speaker!");

Die SmptMail.Send() Methode kann entweder ein MailMessage Objekt übernehmen oder wie in dem obigen Beispiel eine Parameterliste in Form von String Werten. Bei den String Werten handelt es sich ganz klar um die üblichen eMail Elemente From, To, Subject und den eigentlichen Mail Text den Body.

Jetzt zum Komfortablen Teil der ganzen Mail versenderei. Die Klasse MailMessage beinhaltet alles was ein Programmierer Herz benötigt um zum Beispiel einen Dienst wie HotMail zu erstellen. Als erstes müssen Sie eine Instanz der MailMessage Klasse erzeugen. Danach können Sie Einstellungen machen was die eMail alles beinhalten soll. Also weitere Empfänger (CC, BCC), Attachments, Format des Mail Body's usw.

//erzeugen einer einfachen Text eMail
...
using System.Web.Util;
...
MailMessage MyeMail = new MailMessage();
MyeMail.From = "TobiasU@ppedv.de";
MyeMail.To = "HannesP@ppedv.de";
MyeMail.CC = "AlexanderB@ppedv.de";
MyeMail.BCC = "Marketing@ppedv.de";
MyeMail.Subject = "ASP Konferenz die Dritte";
MyeMail.BodyFormat = MailFormat.Text;
MyeMail.Body="Hallo *, wir benötigen noch dringend einen ASP Speaker für die Konferenz.";
MyeMail.Attachments.Add(new MailAttachment("c:ASP_Konfasp_konfSessions.doc"));

SmtpMail.Send(MyeMail);

.....

Bemerkung:
Wenn Sie einen anderen eMail Server als den SMTP Dienst benutzen wollen müssen Sie sich ein eigenen Mail Objekt erzeugen.

Erfasst am: 01.04.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=410
© Copyright 2003 ppedv AG - http://www.ppedv.de