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

Downloads per Email verschicken

Geschrieben von: Christoph Wille
Kategorie: Komponenten

Gerade durch das Internet ist es für viele Softwareunternehmen leicht geworden, Testversionen für potentielle Kunden zur Verfügung zu stellen - vor allem, ohne für die Verteilung und den Versand Personal bereitstellen zu müssen. Natürlich ist diese Bereitstellung von digitaler Information (und eine Software ist nichts anderes) nicht auf Testversionen beschränkt; es könnten genauso gut Dokumente sein.

Bei der Distribution von digitalen Informationen über Websites bedienen sich die Firmen verschiedenster Methoden:

  • Downloadlink Das ist die einfachste Variante. Der Benutzer klickt auf einen normalen Hyperlink, und der Download beginnt.
  • Registrieren, dann downloaden Dies ist die weitestverbreitete Vorgangsweise. Bevor ein Kunde die Testversion downloaden kann, muß er bestimmte Daten (Name, Emailadresse, etc) eingeben. Der Download erfolgt dann über einen Redirect.
  • Versand per Email Dies ist meist ein Zusatz zu obiger Variante - die downzuloadende Datei wird per Email an den Empfänger versandt. Für jemanden, der gerade an einem öffentlichen Terminal eine interessante Software gefunden hat, ist es ein hervorragendes Feature, sich die Software nach Hause emailen zu lassen.

In diesem Artikel werde ich auf dieses letzte Feature eingehen, weil man es viel zu selten auf Websites findet. Da man, um Email versenden zu können eine entsprechende SMTP-Email-fähige Komponente braucht, muß zuerst am Webserver eine solche installiert sein. Ich habe mich für SA SMTPmail entschieden, da man diese Komponente gratis einsetzen kann (Link am Ende des Artikels). Als zusätzlicher Bonus ist diese Komponente Feature-kompatibel zu AspMail von ServerObjects - man kann den alten Sourcecode ohne Änderung übernehmen, und muß nur im CreateObject Statement die ProgId austauschen.

Was alles sollte man für den Download von Dateien vorsehen? Mir würden zum Beispiel folgende Topics einfallen (ohne Anspruch auf Vollständigkeit oder Reihung nach Wichtigkeit):

  • Geschwindigkeit
  • Flexibilität
  • Sicherheit

Zur Geschwindigkeit gibt es eigentlich nur zu sagen, daß für den Download per Email der SMTP Server über eine schnelle Anbindung (lokales Netzwerk) verfügbar sein muß. Flexibilität heißt für mich, daß mein Downloadskript einmal geschrieben wird, und dann nicht mehr modifiziert werden muß - egal, wie viele verschiedene Dateien zum Download verfügbar gemacht werden. Und last but not least, Sicherheit: man sollte sich davor hüten, den Namen der Datei im Querystring zu übergeben - für den Kunden ist es früh genug, wenn er den Namen der Datei im Posteingang das erste Mal sieht.

Für das Beispiel (Link zum Code) mußte ich leider etwas bei der Flexibilität einschränken, da ich sonst noch eine Menge Datenbankcode hätte einfügen müssen (statt der Zeilen 005 und 006). Im Sicherheitsansatz stimmt das Skript allerdings: der Pfad der Datei wird nicht mitgegeben, sondern nur eine Programmnummer (?program=1):

Download

Aus dieser Programmnummer (mit einigen Sicherheitschecks in den Zeilen 008 bis 018) kann sowohl der Programmname und die zu verschickende Datei ermittelt werden (Zeile 027, TITLE Element). Das Formular, in dem der Benutzer seine Emailadresse eingeben kann, wird in den Zeilen 035 bis 047 generiert - allerdings nur, wenn der Benutzer nicht schon die Send Download Schaltfläche gedrückt hat (dies wird mit dem versteckten Feld der Zeile 041 ermittelt).

Da das Formular auf sich selbst abschickt (Request.ServerVariables("SCRIPT_NAME") in Zeile 035), ist der Downloadversand auch in dieser ASP Seite integriert. Zuallererst wird in Zeile 052 ein wirklich bescheidener Check der Emailadresse vorgenommen, und danach der Emailversand über SA SMTPmail vorbereitet. Für

056  		Mailer.FromName = strSenderDisplayName
057  		Mailer.FromAddress = strSenderEmail
058  		Mailer.RemoteHost = strSMTPHost
sind die Variablenwerte in den Zeilen 21, 22 und 23 definiert - üblicherweise würde man diese Werte über eine zentrale Includedatei (zB: maileinstellungen.asp) einbinden.

Der interessanteste Teil dieser Email ist das Attachment:

Mailer.AddAttachment Server.MapPath(aDLUrls(strProgram))
Man muß nur den physikalischen Pfad angeben, und schon kann man mit Mailer.SendMail den Download zum Kunden abschicken! Da beim Versand der Email Fehler auftreten können, habe ich noch den notwendigen Fehlerbehandlungscode eingefügt (man könnte es erweitern, indem man mit Response.AppendToLog den Fehler in das Log des Web Servers schreibt)

Die generierte Email, die der Kunde erhält, sieht wie folgt aus:

Email

Natürlich kann man diesem Sourcecode erweitern: bei größerer Anzahl an downloadbaren Dateien (>10) muß man auf alle Fälle die Zeilen 005 und 006 durch Datenbankabfragen ersetzen, um die gewünschte Flexibilität zu erreichen. Ansonsten kann der Emaildownload sofort in die bestehende Sitestruktur eingebaut werden.

Download des Codes

Klicken Sie hier, um den Download zu starten.

Verwandte Artikel

ACT MetaMailer - Mails verschicken leicht gemacht
Emails senden mit CDONTS
Html Emails mit Dundas Mailer verschicken
Mit PGP verschlüsselte e-Mails senden

Links zu anderen Sites

SA SMTPmail Download

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.