TOC

This article has been localized into German by the community.

Misc:

Emails senden

Das Senden von E-Mails mit ASP.NET ist ziemlich einfach. Das .NET Framework enthält einen vollständigen Namespace für die Verarbeitung von E-Mails, den System.Net.Mail-Namespace. In den folgenden Beispielen werden zwei Klassen aus diesem Namespace verwendet: Die MailMessage-Klasse für die eigentliche E-Mail und die SmtpClient-Klasse zum Senden der E-Mail.

Wie Sie vielleicht wissen, werden E-Mails über einen SMTP-Server gesendet. Zum Senden von E-Mails mit dem .NET-Framework benötigen Sie Zugriff auf einen SMTP-Server. Wenn Sie Dinge lokal testen, verfügt das Unternehmen, das Ihren Internetzugang bereitstellt, normalerweise über einen SMTP-Server, den Sie verwenden können. Wenn Sie eines dieser Beispiele auf Ihrer tatsächlichen Website verwenden möchten, wird das Unternehmen, das Ihre Website hostet, dies tun haben in der Regel einen SMTP-Server, den Sie verwenden können. Durchsuchen Sie die Support-Seiten, um die tatsächliche Adresse zu ermitteln. In der Regel handelt es sich dabei um smtp.your-isp.com oder mail.your-isp.com.

Sobald Sie einen zugänglichen SMTP-Server haben, können Sie unsere erste E-Mail senden. Für das erste Beispiel benötigen Sie lediglich eine leere Seite mit dem folgenden Code im CodeBehind:

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        MailMessage mailMessage = new MailMessage();
        mailMessage.To.Add("your.own@mail-address.com");
        mailMessage.From = new MailAddress("another@mail-address.com");
        mailMessage.Subject = "ASP.NET e-mail test";
        mailMessage.Body = "Hello world,\n\nThis is an ASP.NET test e-mail!";
        SmtpClient smtpClient = new SmtpClient("smtp.your-isp.com");
        smtpClient.Send(mailMessage);
        Response.Write("E-mail sent!");
    }
    catch(Exception ex)
    {
        Response.Write("Could not send the e-mail - error: " + ex.Message);
    }
}

Das ist eigentlich alles, was Sie brauchen, um eine E-Mail zu senden. Wir erstellen eine neue MailMessage-Instanz, fügen einen neuen Empfänger hinzu, legen die Absenderadresse und den Betreff fest und schreiben dann eine einfache Testnachricht für den Hauptteil der E-Mail. Danach erstellen wir eine neue Instanz des SmtpClient mit der Hostadresse des SMTP-Servers, den Sie als Parameter verwenden können, und verwenden dann die SmtpClient-Instanz, um die E-Mail in den Cyberspace zu senden. Das Ganze ist von einem try..catch-Block umgeben, nur für den Fall, dass etwas schief geht.

Dies war nur ein sehr einfaches Beispiel, aber es gibt viele andere Optionen. Hier ist eine kurze Liste mit interessanten Ideen:

Sie können eine oder mehrere Dateien anhängen, indem Sie sie einfach der Attachments-Auflistung hinzufügen. In diesem Beispiel hängen wir eine Datei mit dem Namen "image.jpg" an, die sich im Stammverzeichnis der ASP.NET-Website befindet:

mailMessage.Attachments.Add(new Attachment(Server.MapPath("~/image.jpg")));

Sie können eine Nachricht an mehrere Personen gleichzeitig senden, indem Sie der Sammlung "An" einfach eine weitere E-Mail-Adresse hinzufügen:

mailMessage.To.Add("your.own@mail-address.com");
mailMessage.To.Add("another@mail-address.com");

Sie können einen Namen für den Absender festlegen. Andernfalls wird nur die E-Mail-Adresse in der Spalte "Von" des E-Mail-Clients des Empfängers angezeigt. Zum Beispiel so:

mailMessage.From = new MailAddress("me@mail-address.com", "My Name");

Sie können HTML-E-Mails anstelle der Standard-Nur-Text-Mails senden, um kompliziertere Layouts zu verwenden. Hier ist ein einfaches Beispiel:

mailMessage.IsBodyHtml = true;
mailMessage.Body = "Hello <b>world!</b>";

Sie können die CC- und BCC-Felder wie in normalen E-Mail-Nachrichten verwenden:

mailMessage.CC.Add("me@mail-address.com");
mailMessage.Bcc.Add("me2@mail-address.com");

Sie können die Priorität einer E-Mail wie folgt festlegen:

mailMessage.Priority = MailPriority.High;

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!