Hallo Leute,
habe ne kurze Frage. Ich möchte das meine Datei imap.php die E-Mails von einem POP3 Postfach ausliest, die Daten der E-mails in einer Datenbank speichert und danach die E-Mail endgültig löscht. Habe dazu folgenden Code... (ein Teil hier im forum gefunden)
Folgendes Problem dabei: angezeigt werden alle Mails, es wird aber nur die erste in die Datenbank geschrieben und die anderen nicht. Des weiteren wird auch nur die erste Gelöscht! Was ist an dem Code falsch?
Danke für eure Hilfe...
*Respect*
habe ne kurze Frage. Ich möchte das meine Datei imap.php die E-Mails von einem POP3 Postfach ausliest, die Daten der E-mails in einer Datenbank speichert und danach die E-Mail endgültig löscht. Habe dazu folgenden Code... (ein Teil hier im forum gefunden)
Code:
<?php
// POP3-Server
$host="localhost";
$port="110";
// User-Daten
$user="bn";
$passwort="pass";
// Verbinden zur Mailbox
$mailbox=imap_open("{".$host."/pop3:110}INBOX",$user,$passwort);
// Überprüfen ob Verbindung erfolgreich,
// dann weiter...
if ($mailbox)
{
// Posteingang überprüfen
$check=imap_check($mailbox);
// Anzahl vorhandener Emails im Postfach
$count_msg=$check->Nmsgs;
// Anzahl neuer Emails im Postfach
$count_new_msg=$check->Recent;
// Emails auslesen
for ($i=1; $i<=imap_num_msg($mailbox);
$i++)
{
// Header erfassen
$mail_header=imap_header($mailbox, $i);
// Datum erfassen
$mail_date=$mail_header->Date;
// Mail-ID erfassen
$mail_id=$mail_header->message_id;
// Empfänger erfassen
$mail_to=$mail_header->toaddress;
// Absendername erfassen
$mail_from_name=$mail_header->from [0]->personal;
// Absender-eMail-Adresse erfassen
$mail_from_address=$mail_header->from [0]->mailbox."@".$mail_header->from [0]->host;
// Kopieempfänger erfassen
$mail_copy_to=$mail_header->cc[0] ->mailbox."@".$mail_header->cc[0] ->host;
// Antwortempfänger erfassen
$mail_answer_to=$mail_header->reply_to;
// Betreff erfassen
$mail_subject=$mail_header->subject;
// Nachricht erfassen
$mail_body = imap_body($mailbox,$i);
// Daten in db speichern
include ("config.inc.php");
$eintrag = "INSERT INTO support (vorname, mail, betreff, anfrage, datum) VALUES ('$mail_from_name', '$mail_from_address', '$mail_subject', '$mail_body', '$mail_date')";
$eintragen = mysql_query($eintrag);
echo "e-Mail Nr.".$i."<br>";
// Ausgabe in HTML
echo '<b>Versendet am:</b> ';
echo $mail_date."<br>";
echo '<b>Eindeutige eMail-ID: </b>';
echo $mail_id."<br>";
echo '<b>Empfänger: </b>';
echo $mail_to."<br>";
echo '<b>"Name des Absenders: </b>';
echo $mail_from_name."<br>";
echo '<b>"eMail des Absenders: </b>';
echo $mail_from_address."<br>";
// echo $mail_from_address."<br>";
echo '<b>Betreff: </b>';
echo $mail_subject."<br><br>";
echo '<b>Nachricht: </b>';
echo $mail_body."<br><br>";
// E-Mail löschen löschen
imap_delete($mailbox, $i);
imap_expunge($mailbox);
}
imap_close($mailbox);
}
?>
Folgendes Problem dabei: angezeigt werden alle Mails, es wird aber nur die erste in die Datenbank geschrieben und die anderen nicht. Des weiteren wird auch nur die erste Gelöscht! Was ist an dem Code falsch?
Danke für eure Hilfe...
*Respect*