[Php-avanzado] Gestor de Correo

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Jue Jun 19 20:51:50 ART 2014


Se nos está escapando algo... porque si el propio mensaje no contiene la
información sobre cómo interpretarlo, además de violar el RFC-nosecuanto
que define el funcionamiento del e-mail, sería imposible escribir un
cliente de correo!


El jue, 19-06-2014 a las 17:22 -0300, Fernando Pehuén Borsani escribió:
> Después de leer el mensaje de Leandro quite todo el descriptor y anda bárbaro, pero todavía no le había contado los resultados.
> 
> Me encantaría mandarte documentación, pero el problema es que no encontré, por eso recurrí a ustedes.
> 
> Lo que estoy haciendo es tener una cuenta a la que le llegan correos desde distintos servicios y voy configurándolos según como son cada uno, porque la verdad difieren bastante. Por ejemplo Yahoo usa ISO 8859-1, pero Gmail usa UTF-8. Yahoo usa Quoted printable, pero Gmail usa base64 (quizás esté relacionado a lo anterior, no lo sé). También cambian los datos en las cabeceras, Yahoo te codifica el personal y Gmail el fetchsubject, no todos usan from, response to y sender, etc, así que estoy utilizando una pequeña muestra para tener un sistema que pueda mostrar la info siempre.
> 
> Gracias a los tres por las respuestas!!!
> 
> -----Mensaje original-----
> De: Php-avanzado [mailto:php-avanzado-bounces en pato2.fi.mdp.edu.ar] En nombre de Leonardo Tadei - Pegasus Tech Supply
> Enviado el: jueves, 19 de junio de 2014 04:43 p.m.
> Para: Lista del curso de PHP Avanzado
> Asunto: Re: [Php-avanzado] Gestor de Correo
> 
> Hola Pehuén,
> 
> 	Leandro anda cerca de la solución: hay que sacarle el descriptor de codificación entero, en este caso:
> 
> ?UTF-8?B?
> 
> Es decir, la cadena a decodificar queda:
> 
> =VSBsYSBsYSBsw6Egw6HDqcK0csK0dMO9w7rDuiEiwrchIsK3JCQlUlkvJg==?=
> 
> y en texto en claro:
> 
> U la la lá áé´r´týúú!"·!"·$$%RY/&
> 
> Posiblemente el asunto se acabe en el ·, pero esto lo sabrás vos según el asunto de pruebas que estés usando.
> 
> 	Me llama muchísimo la atención que el _asunto_ vaya codificado como base64... cómo corno se señala esto en el e-mail? Porque existen señalizaciones para cada parte de un cuerpo multipart, pero de asuntos, no recuerdo haberlo visto antes.
> 
> 	Me mandás documentación al respecto?
> 
> 	Saludos!
> 
> 
> 
> El jue, 19-06-2014 a las 14:04 -0300, leandro saubiette escribió:
> > No le tendras que sacar la parte de la codificacion utf? Osea 
> > solamente deseincriptar desde el segundo signo de pregunta en 
> > adelante.
> > Saludos
> > 
> > El 19/06/2014 13:22, "Fernando Pehuén Borsani"
> > <fpborsani en yahoo.com.ar> escribió:
> >         Hola! Estoy integrando un gestor de correo a la web de un
> >         cliente, y me encuentro con un problema.
> >         
> >          
> >         
> >         Gmail codifica sus correos en base 64. Uso la función
> >         imap_base64 para decodificar el cuerpo del mail y mostrarlo
> >         correctamente.
> >         
> >          
> >         
> >         El problema es cuando quiero hacer lo mismo con el asunto del
> >         correo: no obtengo salida.
> >         
> >          
> >         
> >         Código:
> >         
> >          
> >         
> >         //capto la cabecera del correo
> >         
> >         $cabeza = imap_headerinfo ($mbox, 1, 50 , 100);
> >         
> >          
> >         
> >         //almaceno el asunto del correo
> >         
> >         $asunto = $cabeza->fetchsubject;
> >         
> >          
> >         
> >         //lo muestro tal cual viene.
> >         
> >         var_dump($asunto);
> >         
> >         //salida: string
> >         
> > '=?UTF-8?B?VSBsYSBsYSBsw6Egw6HDqcK0csK0dMO9w7rDuiEiwrchIsK3JCQlUlkvJg=
> > =?=' (length=72)
> >         
> >          
> >         
> >         //si lo quiero acomodar:
> >         
> >         $asunto = imap_base64($asunto);
> >         
> >         var_dump($asunto);
> >         
> >         //obtengo: boolean false
> >         
> >          
> >         
> >         ¿Qué estoy haciendo mal?
> >         
> >         ¿Cuál es la forma correcta de hacerlo?
> >         
> >         En esencia…. ¡HELP!
> >         
> >         
> >         
> >         _______________________________________________
> >         Lista de correo: Php-avanzado
> >         Mensajes a la lista: Php-avanzado en pato2.fi.mdp.edu.ar
> >         Administración Web:
> >         http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> >         Desubscripción:
> >         php-avanzado-request en pato2.fi.mdp.edu.ar?subject=unsubscribe
> > _______________________________________________
> > Lista de correo: Php-avanzado
> > Mensajes a la lista: Php-avanzado en pato2.fi.mdp.edu.ar Administración 
> > Web: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> > Desubscripción: 
> > php-avanzado-request en pato2.fi.mdp.edu.ar?subject=unsubscribe
> 
> --
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> Web: http://leonardo.tadei.com.ar
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
> 
> _______________________________________________
> Lista de correo: Php-avanzado
> Mensajes a la lista: Php-avanzado en pato2.fi.mdp.edu.ar Administración Web: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> Desubscripción: php-avanzado-request en pato2.fi.mdp.edu.ar?subject=unsubscribe
> 
> _______________________________________________
> Lista de correo: Php-avanzado
> Mensajes a la lista: Php-avanzado en pato2.fi.mdp.edu.ar
> Administración Web: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> Desubscripción: php-avanzado-request en pato2.fi.mdp.edu.ar?subject=unsubscribe

-- 
Leonardo Tadei
leonardot en pegasusnet.com.ar
Web: http://leonardo.tadei.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado