Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Veröffentlicht: 08. Jul 2003 | Aktualisiert: 28. Jun 2004
Von Mathias Schiffer
Mithilfe des .NET Frameworks wird die Auslieferung einer E-Mail an einen SMTP-Server zum Kinderspiel.
Der Namespace System.Web.Mail macht Ihnen den Versand einer e-Mail per SMTP sehr einfach: Sie erzeugen ein Objekt vom Typ System.Web.Mail.MailMessage, über dessen Eigenschaften Sie Absender, Empfänger, Format, Inhalt und Anlagendateien der E-Mail definieren. Eine so zusammengestelltes MailMessage-Objekt können Sie dann über System.Web.Mail.StmpMail versenden, indem Sie in der Eigenschaft SmtpServer einen für Sie zugänglichen SMTP-Server (ggf. einen lokalen) angeben und das MailMessage-Objekt an die Send-Methode übergeben.
Um Zugriff auf diese Klassen zu erhalten benötigen Sie eine Referenz auf die .NET-Bibliothek System.Web.dll. Verwenden Sie dafür unter Visual Studio.NET einfach das "Project"-Menü, aus dem Sie den Menüpunkt "Add Reference" auswählen. In der Komponentenliste des Reiters ".NET" klicken Sie dann doppelt auf "System.Web.Dll" und klicken auf "OK" - fertig.
In Ihrem Codemodul verwenden Sie dann am besten die Imports-Direktive, um "System.Web.Mail" zu importieren: So sparen Sie sich für die weiteren Schritte eine Menge an Schreibarbeit und unlesbar langer Codezeilen.
Der folgende Code zeigt, wie einfach die Zusammenstellung der E-Mail und deren Versand funktioniert:
' Referenzieren Sie System.Web.dll
' [Project]->[Add Reference]->[.NET]
' und fügen Sie Ihrem Modul die folgende
' Imports-Direktive hinzu:
' Imports System.Web.Mail
' [...]
' Neue Nachricht erzeugen:
Dim eMail As New MailMessage
' Eigenschaften der E-Mail festlegen
With eMail
' Absender
.From = "Andreas Absender <<A href="mailto:aa@aa.de">aa@aa.de</A>>"
' Empfänger
.To = "Erich Empfaenger <<A href="mailto:ee@ee.de">ee@ee.de</A>>"
' Kopienempfänger
.Cc = "Curt Cobain <<A href="mailto:cc1@cc.de">cc1@cc.de</A>>;
Carl Carstens <<A href="mailto:cc2@cc.de">cc2@cc.de</A>>"
' Anonyme Kopienempfänger
.Bcc = "B.C. Castorf <<A href="mailto:bcc@cc.de">bcc@cc.de</A>>"
' Titel der e-Mail
.Subject = "EMail aus VB .NET mit System.Web.Mail"
' Format des Texts (Text / HTML)
.BodyFormat = MailFormat.Text
' Codierung des Texts
.BodyEncoding = System.Text.Encoding.Default
' Text
.Body = "Schöne Grüße aus Köln!"
' Anhänge nach Bedarf hinzufügen (hier eine einzelne Grafik)
.Attachments.Add(New MailAttachment("javascript:void(null);", _
MailEncoding.Base64))
' Prioritätskennzeichnung der Mail
.Priority = MailPriority.Low
End With
' Die Mail über einen "offenen" SMTP-Server versenden
SmtpMail.SmtpServer = "" ' z.B. lokaler SMTP-Server
SmtpMail.Send(eMail) ' MailMessage abschicken
Wenn Sie's sich noch einfacher machen wollen, können Sie mithilfe von SmtpMail auch eine eher simple Mail senden: Hierfür geben Sie, nachdem Sie die Eigenschaft SmtpServer wie gehabt belegt haben, an die Send-Methode nur Absender, Empfänger, Titel und Inhalt der Nachricht:
' Einfache Mail über einen "offenen" SMTP-Server versenden
SmtpMail.SmtpServer = "" ' z.B. lokaler SMTP-Server
SmtpMail.Send("Andreas Absender <<A href="mailto:aa@ee.de">aa@ee.de</A>>", _
"Erich Empfaenger <<A href="mailto:ee@ee.de">ee@ee.de</A>>", _
"EMail aus VB .NET mit System.Web.Mail", _
"Schöne Grüße aus Köln!")