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

Buenas,

Sigo dando aprendiendo cosas nuevas al tratar correos por IMAP.

Me pasa algo muy raro cuando envío una imagen adjuntada con Thunderbird a mi cuenta de gmail, no me lo detecta como adjunto.
En cambio, si lo envío desde el webmail de gmail adjuntando la imagen, si que me lo detecta como adjunto!!

Esto me provoca desconcierto, porque me estoy dando cuenta que no detecto siempre los adjuntos...

Por ej. código para detectar si el mensaje tiene adjuntos:

El correo enviado desde Thunderbird muestra
More then one part
Inline message has lines


Y el mensaje enviado desde el webmail de gmail muestra
More then one part
Attachment found!Filename: color-palet.PNG


¿Sabéis porque no me detecta el adjunto cuando envío desde Thunderbird? ¿Qué debería modificar para que me lo detectase?

Muchas gracias de antemano!

PD: Siento ser un pesado con el tema IMAP pero me está costando crear un script que contemple esto.


Código php:
Ver original
  1. <?php
  2. $imap = imap_open ("{imap.gmail.com:993/imap/ssl}INBOX", "user", "pass") or die("No Se Pudo Conectar Al Servidor:" . imap_last_error());
  3.  
  4. // delibertely choose a message with an attachment
  5. $message = 18;
  6.  
  7. $info = imap_fetchstructure($imap, $message);
  8.  
  9. // find out how may parts the object has
  10. $numparts = count($info->parts);
  11.  
  12. // find if if multipart message
  13. if ($numparts > 1) {
  14.  
  15.    echo "More then one part<BR>";
  16.    
  17.    foreach ($info->parts as $part) {
  18.  
  19.       if ($part->disposition == "INLINE") {
  20.          // inline message. Show number of lines
  21.      
  22.          printf("Inline message has %s lines<BR>", $part->lines);
  23.      
  24.       } elseif ($part->disposition == "ATTACHMENT") {
  25.          // an attachment
  26.      
  27.          echo "Attachment found!";
  28.          // print out the file name
  29.          echo "Filename: ", $part->dparameters[0]->value;
  30.          
  31.       }
  32.      
  33.    }
  34.    
  35. } else {
  36.    // only one part so get some useful info
  37.    echo "Only one part";
  38. }
  39.  
  40. imap_close($imap);
  41. ?>