DevTrain

Autor: Hannes Preishuber

Pop3 Client auf Webbrowser Basis

Wenn Sie Ihren Kunden den Zugriff auf Mails über den Browser ermöglichen wollen, oder es auch für Sie selbst brauchen, können Sie heute Lösungen wie Exchange Web Access (OWA) verwenden. Auch Hersteller wie Netscape oder Novell bieten solche Web basierte eMail Clients.
Wenn nun aber so etwas nicht zur Verfügung steht, wie könnte man das anders lösen?
Ein häufig gesehener Lösungsansatz ist eine POP3 Komponente die per POP3 Kommandos (Port 110) die Mails abholt. Die Darstellung erfolgt dann wieder mit ASP.
Das ist sicher funktionell aber nicht performance optimal.
Da wir das Produkt popConnect herstellen bin ich auf einen anderen Weg gestossen, der viele Vorteile bringt. Nachteile habe ich bis jetzt noch keine entdeckt.
Kurz zu popConnect.
popConnect ist vor 4 Jahren von mir programmiert worden um den damaligen Exchange Server 4.0 das POP3 Protokoll beizubringen. Seither ist das Produkt immer weiter entwickelt worden und ist Marktführer im Bereich POP3 Konten abholen. Zwar kann Exchange inzwischen das POP3 Protokoll aber noch immer keine Mails damit abholen. Wenn jemand eine Domain bei zb Puretec hat und die Mails von dort in seinen Exchange Server bringen will, hilft popConnect.
Wie funktioniert das denn?
Zunächst holt popConnect als pop3 Clients per POP3 Protokoll die Mails ab und sendet sie per SMTP Protokoll an den Exchange Server. Dabei ist im Sendevorgang viel Logik enthalten die den passenden Empfänger extrahiert. Wer sich mit der Materie auskennt und zb Pullmail kennt, weis um die Probleme mit BCC oder Mailinglisten . Das ist bei popConnect alles gelöst.
Nun die Idee ist, als Empfangsserver nicht einen Exchange Server zu nehmen sondern einfach einen SMTP Server vom IIS. Die Mails landen dann im Drop Verzeichnis und können per CDOSYS einfach ausgelesen werden. Der SMTP Server kann ohne Hile auch nicht (wie Exchange) Pop3 Konten pullen.
<%
' Drop Verzeichnis auslesen
Set objDropDir = Server.CreateObject("CDO.DropDirectory")
Set colMsg = objDropDir.GetMessages()
For Each cdoMail in colMsg
   strBody = cdoMail.TextBody
   Response.Write "From: " & cdoMail.From & "<BR>"
   Response.Write "To  : " & cdoMail.To & "<BR>"
   Response.Write "Subject: " & cdoMail.Subject & "<BR>"
   Response.Write strBody & "<p>"
Next
Set objDropDir = Nothing 
%>
Um die Zuordnung zwischen Empfänger und Mail herzustellen ist es allerdings nötig, einen Benutzerdatenbank zu pflegen. In dieser wird dann die Email Adresse und auch das Passwort hinterlegt.
Beim anzeigen der Mail hilft dann eine einfache IF Abfrage, damit jeder auch nur seine Mails zu sehen bekommt.
if cdoMail.to=rs("email") then 'anzeigen

Das abholen der Mails über popConnect kann über eine Zeitsteuerung z.B. ppschedule (ppedv) komfortabel realisiert werden. Vorteil ist, das PopConnect auch nicht am Webserver laufen muss. Das Lesen der Mails geht dann viel schneller, als wenn jedesmal erst der Zugriff auf den pop3 Server erfolgen müsste.
Auch das versenden der Emails kann über CDOSYS ähnlich leicht wie auch hier schon mehrmals beschrieben erfolgen.
So steht dem eigenen Web basierten Freemailer nichts mehr im Wege.
Über die Bedienung von popConnect findet sich auf der ppedv.de Site eine Menge Hinweise.

Erfasst am: 21.12.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=678
© Copyright 2003 ppedv AG - http://www.ppedv.de