8.16 E-Mails versenden
 
Am Ende dieses Kapitels sollen einige Hinweise stehen, wie Sie mit ASP.NET E-Mails versenden können. Dafür gibt es kein Webserversteuerelement, aber einige spezielle Klassen aus dem .NET Framework. Die für den Mailversand benötigten Klassen stehen im Namespace System.Web.Mail zur Verfügung. Diesen Namespace sollten Sie in aspx-Seiten, die E-Mails versenden, mit einer Import-Direktive importieren:
<%@ Import Namespace="System.Web.Mail" %>
8.16.1 Versand von E-Mails mit der Klasse SmtpMail
 
email01.aspx demonstriert die einfachste Methode, eine E-Mail zu erstellen und zu versenden.
<!-- email01.aspx -->
<%@ Page Language="VB" Debug="True" Strict="True" %>
<%@ Import Namespace="System.Web.Mail" %>
<script runat="server">
Sub Page_Load (ByVal Sender As Object, _
ByVal E As EventArgs)
Dim mailFrom As String = "von@meineDomain.de"
Dim mailTo As String = "an@meineDomain.de"
Dim mailSubject As String = "Test-Mail mit ASP.NET"
Dim mailBody As String = "Das ist ein Test."
SmtpMail.Send(mailFrom, mailTo, mailSubject, mailBody)
End Sub
</script>
<html><body><head><title>Versand von E-Mails</title>
</head>
<h3>Versand von E-Mails</h3>
</body></html>
Beim Laden der Seite wird eine Mail verschickt. Die Klasse System.Web. Mail.SmtpMail verfügt über die statische Methode Send. Dieser Methode können Sie die Minimalausrüstung einer jeden Mail, also die Angaben zu Absender, Empfänger, Betreffzeile und Nachrichtentext, als Strings übergeben.
Die Klasse SmtpMail hat die öffentliche, statische Eigenschaft SmtpServer. Hier können Sie den SMTP-Server angeben. Wenn Sie keine Angabe machen, verwendet ASP.NET den lokal verfügbaren Mailserver. Wenn Sie beispielsweise den SMTP-Mail-Server mailoutserver.meineDomain.de verwenden möchten, können Sie vor dem Send-Befehl diese Angabe machen:
SmtpMail.SmtpServer="mailoutserver.meineDomain.de"
8.16.2 E-Mails mit der Klasse MailMessage erstellen
 
Wenn Sie nicht nur einfache Mitteilungen, sondern auch Anhänge verschicken möchten, müssen Sie die Klassen MailMessage und MailAttachment zu Hilfe nehmen. In einem Objekt der Klasse MailMessage definieren Sie Ihre Mail. Dafür verfügt die Klasse MailMessage unter anderem über die Eigenschaften From, Bcc, Cc, BodyFormat, BodyEncoding, To, Subject und einige weitere.
Dateianhänge erstellen Sie mit Hilfe der Klasse MailAttachment. Zunächst erstellen Sie ein MailAttachment-Objekt.
Dim myAttachment As New MailAttachment _
("c:\beispiel.txt")
Anschließend fügen Sie dieses MailAttachment-Objekt an das MailMessage-Objekt an:
myMail.Attachments.Add (myAttachment)
Auch diese Mail verschicken Sie mit dem Befehl SmtpMail.Send. Der Befehl Send ist überladen. Statt vier Strings kann er auch ein MailMessage-Objekt entgegennehmen. email02.aspx demonstriert im Zusammenhang, wie Sie eine Mail mit Dateianhang versenden können.
<!-- email02.aspx -->
<%@ Page Language="VB" Debug="True" Strict="True" %>
<%@ Import Namespace="System.Web.Mail" %>
<script runat="server">
Sub Page_Load (ByVal Sender As Object, _
ByVal E As EventArgs)
Dim mailFrom As String = "von@meineDomain.de"
Dim mailTo As String = "an@meineDomain.de"
Dim mailCC As String = "auchAn@meineDomain.de"
Dim mailBCC As String = "geheimAn@meineDomain.de"
Dim mailSubject As String = "Test-Mail mit ASP.NET"
Dim mailBody As String = "Das ist ein Test."
Dim myMail As New MailMessage
myMail.From = mailFrom
myMail.To = mailTo
myMail.Cc = mailCC
myMail.Bcc = mailBCC
myMail.Subject = mailSubject
myMail.Body = mailBody
Dim myAttachment As New MailAttachment _
("c:\beispiel.txt")
myMail.Attachments.Add (myAttachment)
SmtpMail.SmtpServer="mailoutserver.meineDomain.de"
SmtpMail.Send(myMail)
End Sub
</script>
<html><body><head><title>Versand von E-Mails mit Anhang
</title>
</head>
<h3>Versand von E-Mails mit Anhang</h3>
</body></html>
|