Anzahl der ungelesenen Emails in einem pop 3 abfragen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Anzahl der ungelesenen Emails in einem pop 3 abfragen

    Hallöchen miteinander !

    will auf meiner HP eine kleine Anzeige einfügen wo man sieht wieviele ungelesene / gelesene emails man gerade in seinem postfach liegen hat.
    Muss dazu sagen dass meine HP ein login hat. somit wil lich einfach die benutzerdaten für den pop 3 email accoint schon in der datenbank hinterlegen dass das alles automatisch geht. hat mir da jemand ein codegeschnipsel oder ein beispiel doer sowas ? hab im netz nix gefunden nur komplette webmailer was mir zuviel ist.

    wäre suppi !
    viele grüße
    Benny

  • #2
    Hallo,

    schau Dir mal das hier an. Ich bin vor kurzem darüber gestolpert, habe es selbst aber nicht getestet:

    http://www.php.net/manual/de/ref.imap.php

    Deine Abfrage funktioniert damit ganz einfach so:

    PHP-Code:
    $mbox imap_open ("{localhost/pop3:110}INBOX""user_id""password");
    $check imap_check($mbox); 
    echo 
    "Number of messages: " $check->Nmsgs;
    echo 
    "Number of unread messages: " $check->Recent
    Nur das Setup könnte kritisch werden, vor allem wenn Du nur beschränkten Zugriff auf den Server hast.
    Zuletzt geändert von fridolin42; 03.03.2006, 10:43.

    Kommentar


    • #3
      Was aber nur funzt wenn der Mailserver auch IMAP spricht. Wenn er das nicht tut, dann hast du keine Möglichkeit dies herauszufinden. Weil du via POP die Mails erst runterladen musst, bevor du sie lesen kannst.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Hab ich was falsch verstanden? Er möchte doch nur wissen, ob Nachrichten im Postfach liegen, oder? Und das geht auch mit POP, ohne diese herunterzuladen (STAT/LIST). Schwieriger wird's schon rauszufinden, ob die Nachrichten neu sind, vielleicht muss man da mit UIDs selbst was drumherum basteln.

        Eine andere Lösung für das Problem wäre übrigens (falls die Verwendung des genannten Pakets nicht möglich ist), per Sockets einfach direkt auf den POP-Server zuzugreifen. Da das Protokoll sehr einfach ist, sollte die Implementierung nicht zu aufwändig sein.

        EDIT: Ok, hier mal eine einfache Funktion (ohne große Fehlerprüfung), wie man die Zahl der vorhandenen Nachrichten in einem POP-Konto feststellt. Vielleicht hilft das als Denkanstoß oder zum Ausbauen ja weiter.

        PHP-Code:
        function read_messages($popserver$username$password)
        {
           
        $msgs 0;
           
           if (
        $socket fsockopen($popserver110))
           {
               
        $temp fgets($socket);

               
        fputs($socket"USER $username\r\n");
               
        $temp fgets($socket);

               
        fputs($socket"PASS $password\r\n");
               
        $temp fgets($socket);

               
        fputs($socket"STAT\r\n");
               
        $temp fgets($socket);
               
               
        $resp explode(" "$temp);       
               
        $msgs intval($resp[1]);
               
               
        fclose($socket);
           }
           
           return 
        $msgs;

        Einfach mit den Zugangsdaten füttern, zurückgegeben wird die Zahl der im Postfach vorhandenen Nachrichten.
        Zuletzt geändert von fridolin42; 03.03.2006, 13:38.

        Kommentar


        • #5
          Der Topicstarter wollte aber folgendes
          will auf meiner HP eine kleine Anzeige einfügen wo man sieht wieviele ungelesene / gelesene emails man gerade in seinem postfach liegen hat
          Und das kannst du mit dem STAT Command vergessen. Woher sollte der Server wissen welche Mails du ggf in deinem Mailprogi schon gelesen hast ?

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar

          Lädt...
          X