ISSB PopMail Komponente


ISSB PopMail fragt einen Mailserver nach vorliegenden Emails ab.

Die PopMail-Komponente eignet sich sehr gut für die Darstellung einer Liste vorliegender Emails. In ASP-Seiten kann sie Betreff, Datum und andere Emailfelder darstellen. Die Objekterstellung in VB-Code erfolgt einfach durch Server.CreateObject("ISSB.PopMail").

Auch in VB- und C++ Programmen lässt sich die Komponente einsetzen. 

PopMail Objekt- Funktionen und Methoden

Eigenschaft Beschreibung
cc Enthält den oder die Kopieempfänger der abgeholten Email. Die Trennung mehrerer Kopieempfänger erfolgt durch Komma, Semikolon oder Tabulator (abhängig vom Mailprogramm des Absenders). Die Adresse der Kopieempfänger besteht aus Name (wenn vorhanden) und Emailadresse.
DataToReceiveAvailable Zeigt an, dass Daten vom Mailserver geliefert werden.
Date Enthält das Datum und die Uhrzeit der abgeholten Email.
FieldCount Gibt die Anzahl erkannter Emailfelder der mit ReadMessage oder ReadMailHeader gelesenen Email zurück.
From Enthält den vollständigen Absender (Name und Emailadresse).
FromAddress Enthält die Emailadresse des Absenders.
FromName Enthält den Namen des Absenders, wenn vorhanden.
Hostport Mailserver-Port (Default 25)
MailCount Enthält die Anzahl im Postfach vorliegender Emails. List, Stat oder StartMailsession setzt MailCount.
Mailhost Mailservername oder IP-Adresse
Password Enthält das Passwort des Benutzers, das bei der Anmeldung benutzt wird.
Subject Enthält den Betreff einer erhaltenen Email.
TimeoutInSec Socket-Timeout in Sekunden (Default 10)
To Enthält den oder die Empfänger der Email, getrennt durch Komma, Semikolon oder Tabulator.
Username Enthält den Benutzernamen, der bei der Anmeldung benutzt wird.
Methode Beschreibung
Close Schließt die Verbindung zum Mailserver und meldet den Benutzer ab.
Connect(MailHost, Port) Stellt die Verbindung zum Mailserver her. Es mus die Benutzeranmeldung erfolgen.
Alternativ ist StartMailSession zu nutzen.
DeleteMail(Index) Markiert eine mit Index angegebene Email am Mailserver zum Löschen. Der POP-Befehl RSET löscht diese Email entgültig.
GetFieldName(Index) Gibt den Namen des mit 0-basierenden Index angegebenen Email-Feldes zurück. Index darf (FieldCount - 1) nicht übersteigen.
GetFieldValue(Emailfeldname) Gibt den Inhalt des in Emailfeldnamen angegebenen Emailfeldes zurück. Z. B. GetFieldValue("Subject") gibt den Betreff der Email zurück.
GetFieldValueByIndex(Index) Gibt den Inhalt des mit 0-basierenden Index angegebenen Email-Feldes zurück. Index darf (FieldCount - 1) nicht übersteigen. Mit dieser Methode lassen sich alle Emailfelder auflisten.
GetMailSize(Index) Gibt die Größe einer mit Index angegebenen Email in Bytes zurück.
List Sendet den POP-Befehl LIST an den Mailserver und liefert die Antwort zurück. Nach Ausführung dieser Methode ist die Anzahl vorliegender Emails (MailCount) im Postfach und die kapazitive Größe derer bekannt.
Login(Benutzername, Passwort) Meldet den angegebenen Benutzer am Mailserver an
Noop Sendet den POP-Befehl NOOP an den Mailserver und liefert die Antwort zurück.
ReadMailHeader(Index, Lines) Holt eine Email mit in Index angegebenen 0-basierenden Index ab und holt auch die in Lines angegebene Anzahl von Textzeilen ab.
ReadMessage(Index) Holt eine Email mit angegebenem Index vom Mailserver ab. Der Index ist 0-basierend.
Rset Sendet den POP-Befehl RSET an den Mailserver und liefert die Antwort zurück
RequestMailCount Fragt den Mailserver nochmals nach der Anzahl vorliegender Emails ab.
StartMailSession Stellt die Verbindung zum Mailserver her, meldet den Benutzer an und fragt, wie viele Emails im Postfach vorliegen.
Stat Sendet den POP-Befehl STAT an den Mailserver und liefert die Antwort zurück.

 

PopMail ASP-Beispiel

<%

' Erstellen des Pop-Client-Objectes
Set oPopMail = Server.CreateObject("ISSB.PopMail")

' Verbindung herstellen und Benutzer anmelden
On Error Resume Next
oPopMail.StartMailSession "Mailserver", "Benutzername", "Passwort"
If Err <> 0 then
' Fehler aufgetreten
    Response.Write "Es ist folgender Fehler aufgetreten: " & Err.Description
else

    ' vorliegende Anzahl von Emails ermitteln
    Response.Write "Anzahl vorhandener Emails: " & iMailCount & "<br>"

        for iMail = 0 To iMailCount - 1 
        ' Index (0-basierend) und Größe ausgeben
        iSize = oPopMail.GetMailSize(iMail)
        Response.Write "Mail: " & iMail & " Size: " & iSize & " Bytes<br>" & CHR(13) & CHR(10)

        ' Text ausgeben (wenn größer 2000 Bytes, dann nur die ersten 3 Zeilen)
        if iSize > 2000 then
            strMsg = oPopMail.ReadMailHeader(iMail, 3)
        else 
            strMsg = oPopMail.ReadMessage(iMail) 
        end if

        ' Datum ausgeben
        Response.Write oPopMail.GetFieldValue("Date") & "; "

        ' Betreff ausgeben
        Response.Write oPopMail.GetFieldValue("Subject") & "<br>" & CHR(13) & CHR(10)

        ' Body ausgeben
        Response.Write Replace(strMsg, CHR(10), "<br>" & CHR(10))

        ' neuer Absatz
        Response.Write "<p>" & CHR(13) & CHR(10) 
    Next 
' kein Fehler... 
end if

' Verbindung schließen
oPopMail.Close 
' Object freigeben
Set oPopMail = Nothing

%>

Darstellung im MS InterDev

 

C++ Beispiel

Zum importieren der DLL-Funktionen wird die Datei PopMailCom.tlb benötigt. Diese wird im Testprojekt mitgeliefert.

Erstellen der Komponenteninstance:

#import "PopMailCom.tlb" no_namespace

if (SUCCEEDED(CoInitialize(NULL)))
{
    IPopMailPtr PopMail;
    if (SUCCEEDED(PopMail.CreateInstance("ISSB.PopMail")))
    {
        try
        {
            CString strResponse;
            ...
            // Komponente benutzen
            strResponse = (LPCTSTR)PopMail->StartMailSession("Mailserver", "Username", "Password");
            ...
            ...
        }
        catch(_com_error& e)
        {
            m_strErrorMsg = (LPCTSTR)e.Description();
        }
    }
    else
        MessageBox("Fehler bei Initialisierung der PopMail Komponente!",
            "Fehler", MB_OK | MB_ICONERROR);
}
else
    AfxMessageBox("Fehler bei CoInitialize()");
CoUninitialize();

 

Testclient-Projekt

Installation und Test

Deinstallation

Um die Komponente zu deinstallieren, muss der Webserver (MS IIS) beendet werden. Den Webserver kann man im Dienste-Manager beenden. Ein "Anhalten"-Klick im Webserver-Manager (MS MMC) alleine reicht nicht.

Die Komponente wird mit regsvr32 [komponenten-dir]\PopMailCom.dll /u aus dem System entfernt.

Sie kann dann einfach aus dem Verzeichnis gelöscht werden.

[PopMailCom herunterladen] [C++ TestClient herunterladen] [Onlinetest]


© 2001 ISSB. Alle Rechte vorbehalten.