• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

imap_headerinfo Fehler beim Array auslesen

jappi00

Mitglied
Hallo liebe Community,
ich komme grade irgendwie nicht weiter...
ich kriege es einfach nicht hin mit der Funktion imap_headerinfo denn Array auszugeben,
ich google nun schon seit einer gefühlten Ewigkeit nach Hilfe, finde aber leider nichts :(
PHP:
$hostname = '{test.de:143/novalidate-cert}';
$username = '[email protected]';
$password = '1234';
//connect to imap
$mbox = imap_open($hostname,$username, $password);
//read the Header/Body
$no = 1;
$headers = imap_headers($mbox);
$body = imap_fetchbody($mbox, $no, 1);
$numberofmails = count($headers);
echo "Emails :".$numberofmails;
//Email Output
for ($i = 0; $i < count($headers); ++$i)
{
    $header = imap_headerinfo($mbox, $i);
    echo "<hr />";
    echo "Betreff :"."<br />".$headers[$i]."<br />";
    echo "<br />";
    echo "Nachricht :"."<br />".imap_fetchbody($mbox, $i+1, 1)."<br />"    ;
    $from = $header->from;
        foreach ($from as $id => $object) {
            $fromname = $object->personal;
            $fromaddress = $object->mailbox . "@" . $object->host;
        };
    echo $fromaddress;
}


//close imap
imap_close($mbox);
Allerdings erhalte ich beim ersten Aufruf der Schleife folgenden Fehler Code:
Warning: Invalid argument supplied for foreach() in /var/customers/webs/ni675864_1/email-abfrage.php on line 40
schreibe ich denn Code so:
PHP:
for ($i = 0; $i < count($headers); ++$i)
{
    echo "<hr />";
    echo "Betreff :"."<br />".$headers[$i]."<br />";
    echo "<br />";
    echo "Nachricht :"."<br />".imap_fetchbody($mbox, $i+1, 1)."<br />"    ;
    $header = imap_header($mbox, $i );
    $from = $header->from;
        foreach ($from as $id => $object) {
            $fromname = $object->personal;
            $fromaddress = $object->mailbox . "@" . $object->host;
        };
    echo $fromaddress;
}
erhalte ich wieder beim ersten Aufruf die Fehler Meldung:
Warning: imap_header(): Bad message number in /var/customers/webs/ni675864_1/email-abfrage.php on line 38 Warning: Invalid argument supplied for foreach() in /var/customers/webs/ni675864_1/email-abfrage.php on line 40
Vielen Dank im Voraus und L.G.
Jappi00
 
Zuletzt bearbeitet:
Werbung:
Danke dir,
habe den Code wie folgt angepasst:
PHP:
//Email Output
for ($i = 0; $i < count($headers); $i++)
{
    $header = imap_headerinfo($mbox, $i);
    echo "<hr />";
    echo "Betreff :"."<br />".$headers[$i]."<br />";
    echo "<br />";
    echo "Nachricht :"."<br />".imap_fetchbody($mbox, $i+1, 1)."<br />"    ;
    $from = $header->from;
        foreach ($from as $id => $object) {
            $fromname = $object->personal;
            $fromaddress = $object->mailbox . "@" . $object->host;
        };
    echo $fromaddress;
}
allerdings spuckt er nun
Warning: Invalid argument supplied for foreach() in /var/customers/webs/ni675864_1/email-abfrage.php on line 40
aus, ich denke dass es schon an der $i Variabel liegt, weiss aber noch nicht genau warum...


Achja, das ist mir auch schon aufgefalle, allerdings möchte ich es erstmal im Groben hinbekommen...
Ich behalte es im Hinterkopf! Danke
 
Werbung:
Schau dir bitte mal den Link an. Ich denke Du iterierst hier nicht durch ein Array. Debugge auch mal die Variablen die Du verwendest.
 
Wenn ich es richtig verstehe (sory bin nicht der beste in Englisch) wird ausgesagt das wenn man imap_headers(); vorher ausführt, die Ladezeit verkürzt wird... Aber was hat das mit imap_headerinfo zu tun? Entschuldigung, aber irgendwie bin ich jetzt total verwirrt...
 
Zuletzt bearbeitet:
Werbung:
Oh entschuldigung, Ich habe die variabel mal gedebuggt...
Er zeigt mir array(2) { [0]=> string(82) " 1) 5-Jun-2015 ****@****.net NACHRICHT (1411 chars)" [1]=> string(62) " 2) 6-Jun-2015 ****@****. net NACHRICHT (1265 chars)" } an, anscheinend ist doch alles richtig oder?
 
Zurück
Oben