Zum Inhalt springen

pop3: lesen +löschen?


Empfohlene Beiträge

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]

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...