Wie kann ich E-Mail-Anhänge in PHP auf dem Server speichern?

Ich habe fast zwei Tage lang gegen die E-Mail-Lesefunktionen von PHP gekämpft. Ich schreibe ein Skript, um E-Mails aus einer Mailbox zu lesen und Anhänge auf dem Server zu speichern. Wenn Sie jemals etwas Ähnliches getan haben, können Sie meinen Schmerz verstehen:PHP spielt nicht gut mit E-Mail!

Ich habe eine Verbindung zum POP3-Server hergestellt und kann die Dateien durchlaufen. Hier ist eine grobe Übersicht über den Code:

if (!$mbox = imap_open ("{myserver.com:110/pop3/notls}INBOX", "u", "p"))
    die ('Cannot connect/check mail! Exiting');

if ($hdr = imap_check($mbox)) 
    $msgCount = $hdr->Nmsgs;
else 
    die ("Failed to get mail");

foreach ($overview as $message) {
    $msgStruct = imap_fetchstructure($mbox, $message->msgno);

    // if it has parts, there are attachments that need reading
    if ($msgStruct->parts) {
        foreach ($msgStruct->parts as $key => $part) {
            switch (strtoupper($part->subtype)) {
                case 'GIF': case 'JPEG':case 'PNG':

                    //do something - but what?!

                    break;
            }
        }
    }
}

Ich habe markiert, wo ich festsitze. ich kann nutzenimap_fetchbody($mbox, $message->msgno, $key+1) Aber das bringt mir eine Menge Daten wie diese:

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8S
EhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEU
Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAAR
CAHiAi0DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
...

Ich muss glauben, dass dies MIME-Daten sind. Ich brauche es als Bild! Ich habe mehrere Klassen im Internet bombardieren sehen, die behaupten, die erforderliche Zauberei auszuführen. Ich kann keinen von ihnen zum Arbeiten bringen. Ich verstehe nicht, warum ich das so schwer finde!

ZusamenfassendIch suche nach etwas, das einen rohen MIME-String in echte Daten verwandeln kann.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage