Hallo,
ich habe im folgenden Script einen Denkfehler, komme aber nicht weiter.
Zur Erklärung:
Ich möchte das Postfach abfragen nach Headern, welche als Email Rückläufer erkennbar sind und diese direkt aus dem Postfach löschen.
Das ganze bin ich wie folgt angegangen:
Mit der folgenden Funktion hab ich mir die betreffenden Mails auflisten lassen und baue mir aus diesen ein Array:
Die folgende Funktion sollte jetzt auf Grundlage des Arrays die Emails löschen und wird wie folgt aufgerufen:
Und Ihr werdet lachen, es geht nicht!
Kann mir jemand bitte unter die Arme greifen, habe eine ernsthafte Denkblockade.
Vielen Dank im Voraus und beste Grüsse
Michael
ich habe im folgenden Script einen Denkfehler, komme aber nicht weiter.
Zur Erklärung:
Ich möchte das Postfach abfragen nach Headern, welche als Email Rückläufer erkennbar sind und diese direkt aus dem Postfach löschen.
Das ganze bin ich wie folgt angegangen:
Mit der folgenden Funktion hab ich mir die betreffenden Mails auflisten lassen und baue mir aus diesen ein Array:
PHP-Code:
function getbounces() {
global $undeliverable_emails;
error_reporting(E_ALL);
$mbox = imap_open("{mail.meinserver.de:110/pop3/notls}", "user", "password");
echo "<h1>Unzustellbare Emails</h1>\n";
$folders = imap_listmailbox($mbox, "{mail.meinserver.de:110/pop3/notls}", "*");
if ($folders == false) {
echo "Abruf fehlgeschlagen<br />\n";
}
$undeliverable_emails[] = '';
$header = imap_mailboxmsginfo($mbox);
for ($i = 1; $i < ($header->Nmsgs)+1; $i++) {
$header_result = (imap_header($mbox, $i));
$header_result->from['0']->mailbox.'@'.$header_result->from['0']->host.'<br />';
$body = imap_header($mbox, $i);
//print $body->subject.'<br />';
$failure_array = array( '0' => 'failure notice',
'1' => 'delivery failure notification',
'2' => 'unzustellbar',
'3' => 'mail delivery deamon' );
for ($ii=0; $ii<count($failure_array); $ii++) {
if (stristr($body->subject, $failure_array[$ii]) != FALSE || $body->subject == '') {
$undeliverable_emails[] = array( $header_result->Msgno => $header_result->from['0']->mailbox
.'@'.
$header_result->from['0']->host);
}
}
}
imap_close($mbox);
return $undeliverable_emails;
}
PHP-Code:
deletebounces($undeliverable_emails);
PHP-Code:
function deletebounces($emails) {
print 'Zu löschende Emails:';
$mbox = imap_open("{mail.mainserver.de:110/pop3/notls}", "user", "pass");
for ($ie=1; $ie<count($emails); $ie++) {
foreach ($emails[$ie] as $nmb => $key) {
print $key.' wird gelöscht<br />';
imap_delete($mbox, $nmb);
}
}
imap_expunge($mbox);
imap_close($mbox);
}
Kann mir jemand bitte unter die Arme greifen, habe eine ernsthafte Denkblockade.
Vielen Dank im Voraus und beste Grüsse
Michael
Kommentar