Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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]

Geschrieben

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

Geschrieben

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

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...