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

Downloads per Email verschicken

Geschrieben von: Christoph Wille
Kategorie: Komponenten

This printed page brought to you by AlphaSierraPapa

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:

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):

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.

This printed page brought to you by AlphaSierraPapa

Download des Codes

Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20000330.zip

Verwandte Artikel

ACT MetaMailer - Mails verschicken leicht gemacht
http:/www.aspheute.com/artikel/20021028.htm
Emails senden mit CDONTS
http:/www.aspheute.com/artikel/20000515.htm
Html Emails mit Dundas Mailer verschicken
http:/www.aspheute.com/artikel/20010625.htm
Mit PGP verschlüsselte e-Mails senden
http:/www.aspheute.com/artikel/20000912.htm

Links zu anderen Sites

SA SMTPmail Download
http://www.softartisans.com/smtpmail.html

 

©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.