varios stexto spara sde sasunto por mail imagen funcion formulario form_mail enviar documento correo con archivos archivo adjuntos adjunto adjuntar php email mime

php - por - function form_mail($ spara $sasunto $stexto $sde



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

Encontré una guía rápida sobre cómo tratar los correos electrónicos con PHP: aquí .

En la parte inferior de la página hay un echo cuerpo adjunto:

if (substr($ContentType,0,4) == "text") { echo imap_qprint($fileContent); } else { echo imap_base64($fileContent); }

Supongo que esto es lo que podrías necesitar ...

(editar: en su caso, si se trata de una imagen, siempre se puede omitir la parte if . Y, por supuesto, guardar el archivo en lugar de repetirlo :)

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 correos electrónicos de un buzón y guardar los archivos adjuntos en el servidor. Si alguna vez has hecho algo similar, puedes comprender mi dolor: ¡ PHP no funciona bien con el correo electrónico!

Me he conectado al servidor POP3 y puedo iterar los archivos. Aquí hay un bosquejo 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; } } } }

Marqué donde estoy atascado. Puedo usar imap_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 hacen creer que esto es información MIME. Lo necesito como una imagen! He visto varias clases bombardeando Internet que dicen hacer la magia necesaria. No puedo hacer que ninguno de ellos trabaje. ¡No entiendo por qué estoy encontrando esto tan difícil!

En resumen , estoy buscando algo que pueda convertir una cadena MIME en bruto en datos reales.


Los datos MIME están codificados en base 64, así que creo que deberías poder decodificarlos usando base64_decode