Angular, AWS und Symfony Freelancer

PHP POP3 Mails aus Postfach auslesen

Um mit PHP an die E-Mails eines Postfaches zu gelangen über POP3, habe ich diese nützliche Testscript geschrieben. Damit lassen sich alle ungelesen E-Mails anzeigen mit Absender, Betreff, Datum und E-Mail-Body.

$mailserver="pop.foo.de";
$port="110/pop3";
$user="name@foode";
$pass="foo";
getEmailsImap($mailserver, $port, $user, $pass);

//open connection to mailbox, read all unread mails
function getEmailsImap($mailserver, $port, $user, $pass)
{
    $imap = imap_open( "{" . $mailserver . ":" . $port . "}INBOX", $user, $pass );
    if ($imap)
     {
        echo "Connected\n";
        $check = imap_mailboxmsginfo($imap);
        echo "Date: "     . $check->Date    . "<br />\n" ;
        echo "Driver: "   . $check->Driver  . "<br />\n" ;
        echo "Unread: "   . $check->Unread  . "<br />\n" ;
        echo "Size: "     . $check->Size    . "<br />\n" ;

        $totalrows = imap_num_msg($imap);
        //iterate through all unread mails
        for ($index = 0; $index < $totalrows; $index++)
        {
            $header = imap_header($imap, $index + 1);
             //get mail subject
            dump("<h1>".$header->subject."</h1>");
             //get mail sent date
            $prettydate = date(DateTime::ISO8601 , $header->udate);
            dump( $prettydate );
            //get email author
            $email = "{$header->from[0]->mailbox}@{$header->from[0]->host}";
            dump( $email );
            //get mail body
            dump( imap_body($imap, $index + 1));
        }
        //close connection to mailbox
        imap_close($imap);
        return true;
     }
     else
     {
         dump("Can't connect: " . imap_last_error());
         return false;
     }
}
function dump($var)
{
    echo "<pre><div align='left'>";
    print_r($var);
    echo "</div></pre>";
}

Veröffentlicht

in

von

Schlagwörter:

Kommentare

5 Kommentare zu „PHP POP3 Mails aus Postfach auslesen“

  1. Avatar von Torsten
    Torsten

    Schön schlanker und gut verständlicher Code. Funktioniert prima, vielen Dank fürs Veröffentlichen!

  2. Avatar von Klaus
    Klaus

    und wie kann man die Mail in eine Datei speichern.
    Bei einigen mails sind andere schriften und werden als =?? dargestellt.

  3. Avatar von Daniel
    Daniel

    Vielen Dank!
    Funktioniert perfekt!

  4. Avatar von Aysun
    Aysun

    Hallo, leider funktioniert der bei mir nicht. Bzw. kein php script funktioniert bis jetzt bei mir. Habe es mit gmail account und gmx account probiert. Der server kann nicht antworten und am Ende kommt der internal server error (500). Wie hat es denn bei dir funktioniert?

  5. Avatar von tizi
    tizi

    super Script! Danke!!! Wie kann ich denn aber jetzt die Mails als „gelesen“ markieren, damit sie mir bei einer erneuten Abfrage nicht wieder angezeigt werden?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert