Veröffentlicht 6. April 200322 j folgender code ließt die emails von einen pop3-server. wie kann ich jetzt, einstellen, dass die mails anschließend vom server gelöscht werden sollen?? -> function dele($intMessage), aber wie rufe ich die jetzt auf?? Code: <?php class pop3 { var $strStatus; var $pop3; var $arrMessages; var $arrMessage; function pop3 () { $this->strStatus = array(); $this->pop3 = 0; $arrMessages = $arrMessage = ''; } function open($strServer, $intPort = 110) { $this->pop3 = fsockopen($strServer, $intPort); if (!is_resource($this->pop3)) return FALSE; $line = fgets($this->pop3, 1024); return $this->getresult($line); } function user($strUser) { fputs($this->pop3, "USER $strUser\r\n"); $line = fgets($this->pop3, 1024); return $this->getresult($line); } function pass($strPass) { fputs($this->pop3, "PASS $strPass\r\n"); $line = fgets($this->pop3, 1024); return $this->getresult($line); } function mess() { fputs($this->pop3, "LIST\r\n"); $line = fgets($this->pop3, 1024); if ($this->getresult($line)) { unset($this->arrMessages); while(substr($line = fgets($this->pop3, 1024),0,1) != '.') { $this->arrMessages[] = $line; } return TRUE; } else { return FALSE; } } function retr($strMessage) { list($intMessage) = explode(' ', $strMessage); fputs($this->pop3, "RETR $intMessage\r\n"); $line = fgets($this->pop3, 1024); if ($this->getresult($line)) { unset($this->arrMessage); while(substr($line = fgets($this->pop3, 1024), 0 ,1) != '.') { $this->arrMessage[] = $line; } return TRUE; } else { return FALSE; } } function dele($intMessage) { fputs($pop3, "DELE $intMessage\r\n"); $line = fgets($pop3, 1024); return TRUE; } function quit() { fputs($this->pop3, "QUIT\r\n"); $line = fgets($this->pop3, 1024); return $this->getresult($line); } function getresult($line) { $this->strStatus = substr($line, 0, 1024); if (substr($this->strStatus, 0, 1) != '+') { return FALSE; } else { return TRUE; } } function showresult() { echo '<code style="color:red">'; print_r($this->strStatus); echo '</code><br>'; } } /* end class pop3 */ $mybox = new pop3; $popserver = 'pop3.xxxx.de'; $username = "xxxx"; $password = "xxxx"; echo 'Verbindung: '; $error = FALSE; while (TRUE) { if (!$mybox->open($popserver)) { echo "[FEHLER] Verbindung nicht möglich<br>\n"; $mybox->showresult(); $error = TRUE; break; } else { echo "erfolgreich<br>\n"; $mybox->showresult(); } echo 'Benutzername: '; if (!$mybox->user($username)) { echo "[FEHLER] Benutzername nicht erkannt!<br>\n"; $mybox->showresult(); $error = TRUE; break; } else { echo "erfolgreich angemeldet<br>\n"; $mybox->showresult(); } echo 'Kennwort: '; if (!$mybox->pass($password)) { echo "[FEHLER] Kennwort falsch!<br>\n"; $mybox->showresult(); $error = TRUE; break; } else { echo "akzeptiert<br>\n"; $mybox->showresult(); } echo 'Nachrichten: '; if (!$mybox->mess()) { echo "[FEHLER] Abruf fehlgeschlagen!<br>\n"; $error = TRUE; break; } else { echo 'erfolgreich <b>' . count($mybox->arrMessages) . "</b> gelesen<br>\n"; $mybox->showresult(); } break; } /* end while */ echo '<hr noshade size="2">'; if (!$error and is_array($mybox->arrMessages)) { foreach($mybox->arrMessages as $strMessage) { echo "<b>Nachricht [$strMessage]</b>:<br>\n"; if ($mybox->retr($strMessage)) { foreach($mybox->arrMessage as $strData) { echo "$strData<br>"; } } else { $mybox->showresult(); } echo '<hr noshade size="2">'; } /* end foreach */ } ?> [/php]
6. April 200322 j Hallo, wenn ich das jetzt richtig verstanden habe, dann mußt Du ein list($intMessage) = explode(' ', $strMessage); if ($mybox->dele($intMessage)) echo "Nachricht ".$intMessage." gelöscht."; else echo "Fehler beim löschen von Nachricht ".$intMessage; [/php] am Ende machen. Du mußt aber in der Funktion dele ein $this->pop3 machen. Nur $pop3 reicht nicht. Frank
6. April 200322 j Ein $mybox->quit(); $mybox->showresult(); [/php] am Ende wäre auch nicht schlecht. Frank
6. April 200322 j hm, jetzt erscheint folgende fehlermeldung: Warning: fputs(): supplied argument is not a valid File-Handle resource in /home/goepfert/htdocs/abrufen.php on line 65 Warning: fgets(): supplied argument is not a valid File-Handle resource in /home/goepfert/htdocs/abrufen.php on line 66 Nachricht 2 gelöscht.+OK Bye-bye. ...nachrichten werden aber immer noch nicht gelöscht
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.