Hans: Welche Funktion für Zugriff auf POP3-Fach?

Hi,

ich möchte einen POP3-Webmailer programmieren... Mit welcher Funktion greife ich auf eine POP3-Fach zu? auf php.net habe ich nur die IMAP-Funktionen  wie imap_open etc. gefunden, und die funktionieren unter Umständen nicht...

Mfg Hans

  1. Hallo,

    also ich mach das mit den IMAP-Funktionen - hatte da auch noch nie Probs mit.

    Wenn nicht kannste dir das ganze mit fsockopen() und so selbst schreiben.

    cu Benedikt Loepp

    1. Hi,

      danke  erstmal...
      aber wie kann ich damit auf ein POP-Fach zugreifen?
      Könnte ich vielleicht dein eigenes Webmailer-Script mal einsehen?

      Mfg Hans

      1. Guude!

        aber wie kann ich damit auf ein POP-Fach zugreifen?

        Wei Benedikt schon sagte: Mit fsockopen() (sofern diese Funktion bei Deinem Host nicht deaktiviert wurde). Damit baust Du eine Socketverbindung zu Deinem POP3-Server auf und steuerst ihn dann mit POP3-Befehlen:
        USER user und PASS password (Anmeldung),
        LIST (Auflistung aller Nachrichten),
        RETR 1 (Lesen der 1. Nachricht),
        DELE 1 (Löschen der 1. Nachricht),
        RSET (Gelöschte Dateien wiederherstellen),
        QUIT (Beenden, und damit die gelöschten Nachrichten endgültig löschen).

        LG ausm Hesseland
        Lemmy

        --
        Wer seiner Frau gegenüber stets beteuert, dass DAS tatsächlich 30cm sind, darf sich nicht wundern, wenn sie nicht richtig einparken kann...
        1. Hi,

          danke ersmtal!

          Nehmen wir mal an, ich habe mich mitfsockopen() "eingeloggt", wie "sende"
          ich dann den Befehl USER an das Postfach?

          Danke schonmal,
          Hans

          1. Guude!

            Nehmen wir mal an, ich habe mich mitfsockopen() "eingeloggt", wie "sende"
            ich dann den Befehl USER an das Postfach?

            Hast Du Dein Socket $socket = fsockopen($server, $port) eingerichtet, kannst Du es quasi wie eine Datei nutzen: fputs($socket, "USER hansmeier@web.de\n"); Beachte dabei, dass jeder Request an den POP3-Server mit einem Zeilenumbruch enden muss. Mit fgets() kannst Du dann die Antwort auslesen.

            LG ausm Hesseland
            Lemmy

            --
            Wer seiner Frau gegenüber stets beteuert, dass DAS tatsächlich 30cm sind, darf sich nicht wundern, wenn sie nicht richtig einparken kann...
            1. Hi,

              danke nochmal...

              Hast Du Dein Socket $socket = fsockopen($server, $port) eingerichtet, kannst Du es quasi wie eine Datei nutzen: fputs($socket, "USER hansmeier@web.de\n"); Beachte dabei, dass jeder Request an den POP3-Server mit einem Zeilenumbruch enden muss. Mit fgets() kannst Du dann die Antwort auslesen.

              Wo setze ich dann das Passwort ein?

              Mfg Hans

              1. Guude!

                Wo setze ich dann das Passwort ein?

                Wie? Naja, sobald Du per Socket verbunden bist, musst Du erst den USER-Befehl absetzen und direkt danach PASS (wie das geht steht in meinem vorherigen Post: mit fputs()). Eine POP3-Sitzung könnte bspw. so aussehen (alles mit '+' am Anfang ist die Antwort des Servers):

                +OK Welcome

                USER mein_username // Anmelden
                +OK Password required

                PASS mein_passwort // Authentifizieren
                +OK logged in

                LIST // Alle Mails auflisten
                +OK POP3 clients that break here, they violate STD53.
                1 3425 // An diese Nachricht käme ich z.B. mit RETR 1
                2 5643
                3 6754

                QUIT // Sitzung beenden
                +OK Bye bye

                LG ausm Hesseland
                Lemmy

                --
                Wer seiner Frau gegenüber stets beteuert, dass DAS tatsächlich 30cm sind, darf sich nicht wundern, wenn sie nicht richtig einparken kann...
                1. Hi,

                  danke nochmal...
                  Ich wollte eine Weboberfläche draus machen, wie bekomme ich email-Daten (z.B. Absender)?

                  Danke,
                  Hans

                  1. Guude!

                    Ich wollte eine Weboberfläche draus machen,

                    Das hab ich mir irgendwie schon gedacht...

                    wie bekomme ich email-Daten (z.B. Absender)?

                    Ruft mal Deine Mails ab, so, wie ich es Dir beschrieben habe, und laß Dir den Text in einer Textarea ausgeben. Dann siehst Du, wonach Du filtern musst, je nachdem welche Informationen Dich interessieren. Ein Tipp noch: jede Zeile endet mit \n und das Ende des Headers markiert eine Leerzeile.

                    Ich denke, mit meinen Hinweisen und ein bißchen Kenntnis über String-Operationen in PHP solltest Du in der Lage sein, eine eigene Webmail-Seite zu basteln...

                    LG ausm Hesseland
                    Lemmy

                    --
                    Wer seiner Frau gegenüber stets beteuert, dass DAS tatsächlich 30cm sind, darf sich nicht wundern, wenn sie nicht richtig einparken kann...
                    1. Hi,

                      danke nochmal :-)

                      wahrscheinlich letztes Problem:
                      mit den Anweisungen:

                      LIST bekommen ich die Meldung:
                      +OK pop.******* has 2 messages (1915 octets).
                      +OK 2 messages (1915 octets)

                      mit RETR 1

                      die Meldung:

                      1 779

                      Ich kann die Mail aber nicht lesen oder so...

                      Was habe ich verkehrt gemacht?

                      Danke,
                      Hans