Icon [ zurück ]

Konzeption und Programmierung eines Webmail-Interface

( zu meinem Artikel in "Der Entwickler 04/2001" )


Im Heft 04/2001 (Jul/Aug) der Zeitschrift "Der Entwickler" finden Sie ein Konzept für die Realisierung eines einfachen Webmail-Interfaces.

Achtung: Auf der CD zum Heft und auf dem Webserver beim Verlag finden Sie die Quelltexte zum Projekt in einer etwas älteren Version. Die aktuellen Sourcen gibt es am Ende dieser Seite!!!

Ein solches Webmail-Interface sorgt dafür, dass die Gäste Ihres Webservers e-Mails per Browser abholen können. Dabei arbeitet das Interface sowohl mit lokalen Mailservern im Intranet als auch mit beliebigen fernen Mailservern im Internet zusammen.

Das Webmail-Interface ist in seiner Funktionalität auf die im Artikel beschriebenen Features der Servererweiterung festgelegt. Beim Erscheinungsbild haben Sie durch die Verwendung von frei gestaltbaren HTML-Vorlagen für die Ergebnisseiten einen erfreulich breiten Gestaltungsspielraum.

Beispielsweise könnte der Posteingang wie im nachfolgenden Bild aussehen. Dabei ist lediglich die Tabelle fix, alles andere kann nach Belieben umgestylt werden.

WebMail

Das Interface ist in der vorgestellte Variante nur auf die allernötigsten Funktionen (Mailübersicht abrufen, Nachricht lesen, Anhänge herunterladen, Mails auf dem Server löschen, Nachricht schreiben und versenden) beschränkt. Eine komfortablere Variante finden Sie als Finalprodukt in meinem Softwarebereich.


Für alle, die den Artikel nicht zu lesen bekommen haben, folgen einige wesentliche Eckpunkte des Entwurfs und der Realisierung:

Das Webmail-Interface ist als ISAPI-Webservererweiterung realisiert. Damit funktioniert es nur auf Webservern unter Windows, die den ISAPI-Standard unterstützen. Die konzeptionellen Gedanken lassen sich aber auch auf andere Implementierungsvarianten von Servererweiterungen übertragen (z.B. CGI, PHP oder ASP).

Das Interface durchläuft während der Nutzung durch den User mehrere Zustände. Beim Login wird der User anhand gespeicherter Daten aus einer Benutzerdatenbank identifiziert. Die Daten werden in jeden Folgezustand weitergereicht, egal ob dieser über einen POST- oder einen GET-Aufruf eingenommen wird.

Bei jedem Übergang zu einem anderen Zustand erledigt das Interface die implementierte e-Mailfunktion und bereitet die Ergebnisse auf. Anschließend wird die HTML-Vorlageschablone für die jeweilige Antwortseite eingelesen und an den Stellen mit speziellen Platzhalter-Tags werden die Nachrichtendaten eingesetzt. Die Antwort in Form der dieserart dynamisch generierten HTML-Seite wird an den Client geschickt.

Das folgende Zustandsdiagramm vermittelt den notwendigen Überblick über die Stufen des Interfaces. Es ist jeweils eingetragen, durch welche HTTP-Methode der Aufruf erfolgt und wie der dazugehörige Pfad des Script lautet:
WebMail

An einigen Stellen wird der Einfachheit halber zum Zustandswechsel ein Aufruf der Javascript-back()-Methode verwendet. Das funktioniert mit dem MS-Internet-Explorer problemlos während der Netscape Navigator dagegen moniert. In meinem Finalprodukt zu Webmail wird dieser vereinfachte Aufruf deshalb nicht mehr verwendet.

Für weitere Informationen zu Installation und Gebrauch des Interfaces lesen Sie bitte unbedingt die Datei "LiesMich.htm", die den Zip-Archiven beiliegt. Für Programmierenthusiasten sind die Quelltexte im Archiv hoffentlich ausreichend kommentiert. Für alle "(Nur)"-Anwender empfehle ich dringend, nicht die unten angebotenen Versionen für Programmierer zu verwenden, sondern das vollständige Produkt aus meinem Softwarebereich downzuladen.


Download der Quelltexte für die Delphi-Versionen 3 bis 5 (incl. eines lauffähigen Demos):
Disk http://www.hummel1.de/prog/isapi/wbmldelp.zip (117 KByte)

© Jürgen Hummel     2001

[ Programmierung ]