E-Mails nach dem Abholen und speichern vom Server löschen

-Ener-

Erfahrenes Mitglied
Hi, ich habe folgendes Script welches einen pop3 account auf meinem server ausliest und die e-mailinfo`s in ner mysql speichert... das auch soweit ganz gut nur bei jedem aufruf des scripts läd er die gleichen mails in die db ohne die anderen vorher vom pop3 account zu löschen... wie bekomm ich es hin das des script nachdem alles in der mysql gespeichert wurde die e-mails die er gespeichert hat löscht?

PHP:
<?
// POP3-Server 

$host = "xxx"; 
$port = "110";

// User-Daten

$user = "xxx"; 
$passwort = "xxx"; 

// Connect to Mailbox 

$mailbox = imap_open("{".$host."}INBOX","$user","$passwort"); 

// Mail holen 

$check = imap_check($mailbox); 
$Anzahl_Nachrichten = $check->Nmsgs; 
$Anzahl_Neuer_Nachrichten = $check->Recent; 
// Mail auslesen 
$nMessages = imap_num_msg($mailbox); 
for($i = 1; $i <= $nMessages; $i++) 
	{ 
	$header = imap_header($mailbox, $i); 
	$datum = $header->Date; 
	$m_id = $header->message_id; 
	$empfaenger = $header->toaddress; 
	$betreff = $header->subject; 
	$absender = $header->from[0]->personal; 
	$absender_email = $header->from[0]->mailbox."@".$header->from[0]->host; 
	$body = imap_body($mailbox,$i); 
	$text_koerper = $body; 
	$fheader = imap_fetchheader($mailbox,$i); 

	// Mail in DB speichern. 
 
$host = "xxx";
$user = "xxx";
$password = "xxx";
$dbname = "xxx";
$tabelle ="Emails";
$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage = "INSERT INTO $tabelle SET empfaenger='$empfaenger', absender='$absender', absender_email='$absender_email', text_koerper='$text_koerper'" or die(mysql_error()); 
if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("$i");
} else {
print ("<body leftmargin=20 topmargin=10 background=bgpopup.gif bgcolor=FAFDFF><CENTER><span style=font-family:verdana;font-size:8pt;font-color:black><b>es ist ein Fehler aufgetreten bitte versuch es noch einmal!</b></span></CENTER>");
}
mysql_close ($dbverbindung);
// Mailbox schließen 

imap_close($mailbox); 
?>
 
ja hab ich schon, aber ich hab das wahrscheinlich falsch eingebaut... der löscht entweder nur eine, gar keine oder macht irgendwelchen schwachsinn... wo bau ich das am besten ein und wie sag ich dem script welche emails er alle löschen soll? Soll des imap_delete in ne schleife?
 
Ja nimm das imap_delete mit in die Schleife auf, nach dem Einfügen der Daten in die Datenbank.
Also imap_delete($mailbox, $i) in die Schleife einbauen.
Nach der Schleife rufst du dann imap_expunge($mailbox) auf, dann werden die zum Löschen markierten Nachrichten gelöscht.
 
Zurück