E-Mails löschen per imap_delete()

Alles, was PHP betrifft, kann hier besprochen werden.

E-Mails löschen per imap_delete()

Postby gerdon » 14. February 2008 14:50

Ich benutze das Webmailer-Script von www.laaser.net
Zusätzlich habe ich versucht eine Löschfunktion einzubauen:
Code: Select all
if ($del==1)
{
$msg_box=imap_open({2.2.4.233:110/pop3}INBOX,$USER,$PASS)or die ("Fehler: " . imap_last_error());
imap_delete($msg_box,$msg) or die ("Fehler: " . imap_last_error());
imap_expunge($msg_box) or die ("Fehler: " . imap_last_error());
imap_close($msg_box, CL_EXPUNGE)or die ("Fehler: " . imap_last_error());
}


Hier die Fehlermeldung:

Code: Select all
    Warning: imap_open(): Couldn't open stream {2.2.4.233:110/pop3}INBOX in
    /home/webmail/public_html/webmailer/index.php on line 34
    Fehler: POP3 connection broken in response
    Notice: Unknown: [IN-USE] /var/mail/.leitstelle.pop lock busy!
     Is another session active? (11) (errflg=1) in Unknown on line 0
    Notice: Unknown: POP3 connection broken in response (errflg=1) in Unknown on line 0

Das Script läuft im lokalen Intranet.

Diese Meldung ist wohl der Haken:
Code: Select all
Unknown: [IN-USE] /var/mail/.leitstelle.pop lock busy!


In /var/ gibt es einen Link namens "mail" auf /var/spool/mail/ hier liegen die Postfächer als Textdatei mit den E-Mails.

Jetzt wäre interessant zu wissen, wie die Funktion auf den Pfad

Code: Select all
   /var/mail/.leitstelle.pop


kommt.
gerdon
 
Posts: 2
Joined: 14. February 2008 14:32

Postby Wiedmann » 14. February 2008 15:05

Diese Meldung ist wohl der Haken:

Yup. Irgendjemand ist bereits mit dieser Mailbox verbunden, bzw. hat die letzte Verbindung nicht korrekt mit "quit" getrennt, so dass man den Timeout des Mailservers (10-15min) abwarten muss vor einer erneuten Verbindung.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby gerdon » 15. February 2008 11:21

Das war der richtige Tipp.
Das Script hat ja zuvor zur E-Mail Abfrage eine Verbindung aufgebaut.
Zu Beginn der if-Abfrage ein
Code: Select all
imap_close($stream)or die ("Fehler: " . imap_last_error());

und schon klappt's auch mit dem Löschen.

Danke,
gerdon
gerdon
 
Posts: 2
Joined: 14. February 2008 14:32


Return to PHP

Who is online

Users browsing this forum: No registered users and 22 guests