Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

Email versenden mit AspMail

Geschrieben von: Christoph Wille
Kategorie: Komponenten

Das berühmt-berüchtigte "Anfrageformular" kommt auf (fast) jeder Internetsite vor, und wird meist so gelöst, daß an die zuständige Personen eine Email mit den vom User eingegeben Formularwerten abgeschickt wird. Auch wir verwenden auf dieser Seite ein solches Formular, und ich werde heute aufdecken, was Email-technisch dahinter steckt.

Zum Aufwärmen, hier einmal der HTML-Code eines einfachen (also unserem) Anfrageformular:

<FORM ACTION="<%=Request.ServerVariables("SCRIPT_NAME")%>" 
	METHOD=POST>
<INPUT TYPE=TEXT NAME="Anfragesteller" VALUE="" SIZE=40>
<INPUT TYPE=TEXT NAME="Emailadresse" VALUE="" SIZE=40>
<TEXTAREA NAME="Anfrage" COLS=40 ROWS=10></TEXTAREA>
<INPUT TYPE=SUBMIT VALUE="Abschicken">
</FORM>
Ich habe alle Formatierungen herausgenommen, drinnengeblieben ist nur das, was für das Funktionieren des Formulars lebenswichtig ist. Ein ASP-Trick des tägichen Lebens ist hier auch versteckt: die ACTION des FORMs wird dynamisch mit der SCRIPT_NAME Variable befüllt - der Dateiname des aktuellen Formulars (oder ASP Datei). Und das Umbenennen des Formulars wird somit nicht mehr zur Katastrophe!

Jetzt aber zu Wichtigerem; dem Code zum Abschicken einer Email. Von uns gerne verwendet wird die AspMail Komponente von ServerObjects, da sie sehr lange am Markt, schnell und zuverlässig ist (am Schluß des Artikels habe ich eine Liste von alternativen Komponenten zusammengetragen).

Warum ich nicht die mit IIS mitgelieferte CDONTS (Collaboration Data Objects NT Server) verwende? Die funktionieren nur dann, wenn am Webserver auch ein SMTP Server installiert ist - und zwar der vom NT Option Pack. Nicht gerade praktikabel im täglichen Einsatz.

Der Benutzer hat also das Formular abgeschickt - hier nun der Code, der am Server abläuft.

If Request.ServerVariables("Content_Length")>0 Then
 Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
 Mailer.FromName = "ASPGERMAN Forum"
 Mailer.FromAddress = "webmaster@alphasierrapapa.com"
 Mailer.RemoteHost = "pop3.bitshop.com"
 Mailer.Recipient = "christophw@alphasierrapapa.com"
 Mailer.Subject = "Anfrageformular"
	
 strBody = "Von: " & Request.Form("Anfragesteller") & vbCRLF
 strBody = strBody & "Email: " & Request.Form("Emailadresse") & vbCRLF
 strBody = strBody & "Anfrage: " & Request.Form("Anfrage") _
   & vbCRLF & vbCRLF
 strBody = strBody & "IP: " & Request.ServerVariables("REMOTE_HOST") _
   & vbCRLF
 Mailer.BodyText = strBody
 
 If Mailer.SendMail Then
  Response.Write "Ihre Anfrage wurde erfolgreich weitergeleitet!"
 Else
  Response.Write "W&auml;hrend der Bearbeitung Ihrer Anfrage ist" & _
   " ein Fehler aufgetreten. Bitte wenden Sie sich an " & _
   "webmaster@alphasierrapapa.com."
 End If
End If
Zuallererst checke ich, ob überhaupt Daten geschickt wurden (CONTENT_LENGTH liefert die Länge der geposteten Daten). Danach erstelle ich das Objekt, und setze diverse Eigenschaften (Name von, Emailadresse von, SMTP Server, Empfänger, Betreff). Nach diesen Initialisierungen muß ich nur noch den Text der Email erstellen, und zwar bediene ich mich hier einer lokalen Variable, die ich mit den Daten des Benutzers zusammenstelle. Zusätzlich schicke ich mir noch die IP Adresse des Computers, von dem die Anfrage aus gepostet wurde (der Surfcomputer also).

Abgeschickt wird die Email mit SendMail, das einen Boolschen Wert ob des Erfolgs liefert. Abhängig davon kann man eine Erfolgsmeldung oder Informationsmeldung mit Fehlerbeschreibung ausgeben. So einfach kann das Versenden von Emails in ASP Seiten sein!

Einen letzten Pluspunkt der AspMail Komponente möchte ich noch erwähnen: es gibt sie in der Ausführung AspQMail, einer Mail Queuing Komponente. Das bedeutet, die Email wird nicht sofort geschickt, sondern in eine Queue gesteckt, die bei Freiwerden von Rechnerresourcen die Emails abarbeitet und schickt (als NT Service implementiert). Kann ich absolut für Sites empfehlen, die eine hohe Last auszuhalten haben.

Verwandte Artikel

ACT MetaMailer - Mails verschicken leicht gemacht
Das Versenden von Emails selbst programmieren
Emails senden mit CDONTS
Emails versenden mit ASPEmail
Html Emails mit Dundas Mailer verschicken
Mit PGP verschlüsselte e-Mails senden

Links zu anderen Sites

AspIN - Liste der Emailkomponenten
AspMail

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.