¿Cómo puedo guardar archivos adjuntos de correo electrónico en el servidor en PHP?

He estado luchando contra las funciones de lectura de correo electrónico de PHP durante la mayor parte de dos días. Estoy escribiendo un script para leer los correos electrónicos de un buzón y guardar los archivos adjuntos en el servidor. Si alguna vez has hecho algo similar, podrías comprender mi dolor:PHP no juega bien con el correo electrónico!

Me conecté al servidor POP3 y puedo iterar los archivos. Aquí hay un resumen del código:

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;
            }
        }
    }
}

He marcado donde estoy atascado. Puedo usarimap_fetchbody($mbox, $message->msgno, $key+1) pero eso me da un montón de datos como este:

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

Me llevan a creer que se trata de datos MIME. ¡Lo necesito como imagen! He visto varias clases de bombardeos en Internet que dicen hacer la magia necesaria. No puedo conseguir que ninguno de ellos trabaje. ¡No entiendo por qué estoy encontrando esto tan difícil!

En breveEstoy buscando algo que pueda convertir una cadena MIME sin formato en datos reales.

Respuestas a la pregunta(4)

Su respuesta a la pregunta