Ver Mensaje Individual
  #9 (permalink)  
Antiguo 30/10/2009, 16:26
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Problema al tratar adjuntos vía IMAP

Cita:
Iniciado por franco190453 Ver Mensaje
Neodani:
Muy interesante tu codigo y cuando se llega a los attachments, hay
sin lugar a dudas problema.
Como tu sabes hay los INLINE que son imagenes, por ejemplo,
que forman el cuerpo del mensaje; y estan los ATTACHMENTS que
son los adjuntos propiamente dicho.
Sin lugar a dudas con esta funcion ->
$mensajeadjunto = imap_fetchstructure($imap, $analisarcorreo);
es que se pueden sacar.
Aqui te pongo lo que yo hago para sacar los INLINE y los
ATTACHMENTS de un correo; me funciona con cualquier
cliente de correo y con gmail.com, hotmail.com, yahoo.com,
aol.com y mi servidor.

Claro esta es una fraccion del codigo y debes analizarla con cuidado y en base
a los relustados que muestras arriba y veras que con ambos clientes sale
como esperado.
Saludos
Franco
Buenas,

No acabo de entender el código ya que... entrará tantas veces en el if como partes tenga el correo.

Si mi variable $numparts es igual que tu $partesreales, la sacas de la misma forma?
$numparts = count($info->parts);

En el siguiente ejemplo, me dice que hay 2 adjuntos y en verdad hay uno. Pero como hay dos partes con tu fragmento de script detecta dos.

Código PHP:
stdClass Object
(
    [
type] => 1
    
[encoding] => 0
    
[ifsubtype] => 1
    
[subtype] => MIXED
    
[ifdescription] => 0
    
[ifid] => 0
    
[ifdisposition] => 0
    
[ifdparameters] => 0
    
[ifparameters] => 1
    
[parameters] => Array
        (
            [
0] => stdClass Object
                
(
                    [
attribute] => BOUNDARY
                    
[value] => =_49f16ff92b161073280b5c7e7d15eca6
                
)

        )

    [
parts] => Array
        (
            [
0] => stdClass Object
                
(
                    [
type] => 0
                    
[encoding] => 4
                    
[ifsubtype] => 1
                    
[subtype] => PLAIN
                    
[ifdescription] => 0
                    
[ifid] => 0
                    
[lines] => 5
                    
[bytes] => 60
                    
[ifdisposition] => 0
                    
[ifdparameters] => 0
                    
[ifparameters] => 1
                    
[parameters] => Array
                        (
                            [
0] => stdClass Object
                                
(
                                    [
attribute] => CHARSET
                                    
[value] => utf-8
                                
)

                        )

                )

            [
1] => stdClass Object
                
(
                    [
type] => 5
                    
[encoding] => 3
                    
[ifsubtype] => 1
                    
[subtype] => PNG
                    
[ifdescription] => 0
                    
[ifid] => 0
                    
[bytes] => 504
                    
[ifdisposition] => 1
                    
[disposition] => ATTACHMENT
                    
[ifdparameters] => 1
                    
[dparameters] => Array
                        (
                            [
0] => stdClass Object
                                
(
                                    [
attribute] => FILENAME
                                    
[value] => color-palet.PNG
                                
)

                        )

                    [
ifparameters] => 1
                    
[parameters] => Array
                        (
                            [
0] => stdClass Object
                                
(
                                    [
attribute] => NAME
                                    
[value] => color-palet.PNG
                                
)

                        )

                )

        )



Un saludo,