DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
Mail senden mit .NET 2.0 kurz und bündig

Das versenden von e-Mails ist eigentlich eine einfache Sache. Probleme gabs bisher immer erst bei Sonderfällen. Viele Mailserver verlangen z.B. in jüngster Zeit eine Authentifizierung. Da Mails nicht nur aus Web Anwendungen versandt werden können hat die Mail Klasse in .NET Framework jetzt nicht nur viele neue Funktionen sondern gleich auch noch eine neue Heimat im Namesraum System.Net.Mail.

Das einfache Mail versenden funktioniert ähnlich wie bei .NET 1.x. Allerdings benötigt man jetzt unbedingt eine Instanz der SMTPClient Klasse. Mit der Methode Send wird in den Parametern die Adresse des Senders, die Email des Empfängers, der Betreff und der Text übermittelt.

Dim myClient As New Net.Mail.SmtpClient()
myClient.Send("info@ppedv.de", email.Text + ", info@ppedv.de", "Bestellung des Buches erhalten", mailtext)

Allerdings wird dieser Versuch wahrscheinlich mit folgender Fehlermeldung scheitern:
The SMTP host was not specified.

Die Lösung liegt entweder im Code oder in der Web.Config. Da Konfiguration immer besser als Code ist zunächst der Eintrag in die Web.Config. Dabei kann auch gleich Benutzername und Passwort für die Anmeldung am SMTP Server mitgeliefert werden.
<system.net>
    <mailSettings>
      <smtp deliveryMethod="Network">
        <network defaultCredentials="False" host="localhost" password="pass" port="25"
        userName="user" />
      </smtp>
    </mailSettings>
  </system.net>
</configuration>

Die zweite Methode bedient sich der Host Eigenschaft. Diese kann auch auf den SMTP Server zeigen. In diesem Beispiel wurde als Versand Methode FileAccess statt SMTP Protokoll gewählt. Damit blockiert ein gestoppter SMTP Server nicht die Anwendung weil einfach ins Pickup Directory des SMTP Server geschrieben wird.

Dim myClient As New Net.Mail.SmtpClient()
myClient.Host = "localhost"
myClient.DeliveryMethod = Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis
myClient.Send("info@ppedv.de", email.Text + ", info@ppedv.de", "Bestellung des Buches erhalten", mailtext)

Diese Methode ist auch noch ein vielfaches schneller und für Tests sehr gut geeignet.

Wenn die Mail HTML Code, spezielle Encodings oder Attachments beinhalten soll, wird am besten ein Mail Message Objekt erzeugt das die entsprechenden Eigenschaften bereit stellt.
Dim mymsg As New System.Net.Mail.MailMessage("ppedv Events <events@ppedv.de>", email)
mymsg.Subject = betreff
mymsg.BodyEncoding = System.Text.Encoding.Unicode
mymsg.Body = nachricht.ToString
Dim mymail As New System.Net.Mail.SmtpClient
mymail.Send(mymsg)

 

 


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 20.08.2005
  Gültig bis: 18.11.2005
26 Ratings
Bewertung: 67,7%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG