-Mindfreak-: Socketverbindung zu POP3 - Mailliste unvollständig

Hi,

ich öffne mittels PHP eine Socket-Verbindung zu einem POP3-Server.

  
$pop3 = fsockopen($server,110);  
[...]  
$send = "USER $user\r\n";  
fwrite($pop3,$send);  
$return = fread($pop3,1024);  
[...]  
$send = "PASS $pass\r\n";  
fwrite($pop3,$send);  
$return = fread($pop3,1024);  
[...]  

Ein "STAT" ergibt, dass sich 2704 Mails im Postfach befinden.
Wenn ich mir mittels "LIST" eine Liste anzeigen lasse, werden aber nur 879
zurückgeliefert. Woran kann das liegen?

  
fwrite($pop3,"LIST\r\n");  
$return = fread($pop3,1024*1024);  

Laut RFC1939 werden als DELETED markierte Mails nicht mit angezeigt, daran kann es aber auch nicht liegen, da befinden sich keine drin.

Gruß

  1. Hi,

    Ein "STAT" ergibt, dass sich 2704 Mails im Postfach befinden.
    Wenn ich mir mittels "LIST" eine Liste anzeigen lasse, werden aber nur 879
    zurückgeliefert. Woran kann das liegen?

    Daran, dass du ein einen Teil dessen, was dir zurueckgegeben wird, einliest.

    fwrite($pop3,"LIST\r\n");
    $return = fread($pop3,1024*1024);

      
    Du moechtest du Dokumentation zu fread lesen.  
      
    MfG ChrisB  
      
    
    -- 
    „This is the author's opinion, not necessarily that of Starbucks.“
    
    1. Daran, dass du ein einen Teil dessen, was dir zurueckgegeben wird, einliest.

      Wenn ich mehrere fread hintereinander mache (oder halt in einer Schleife) ist die Ausführungszeit immer exakt 60 Sekunden (+/- 0.05 Sek)

        
      $return = fread($pop3,1024*1024);  
      $return .= fread($pop3,1024*1024);  
      
      

      Woran kann das liegen?

  2. Hi,

    ich hab jetzt eine Lösung gefunden, verstehe sie aber nicht ;)

      
    while (!feof($pop3)) {  
     $tmp_return = fgets($pop3);  
     if (trim($tmp_return) == ".") break;  
     $return .= $tmp_return;  
    }  
    
    

    Lasse ich die Zeile
    if (trim($tmp_return) == ".") break;
    weg, dauert die Skriptausführung knapp 60 Sekunden.

    Vielleicht kann mir das jemand erklären.

    Gruß