Php - Numero de partie d'un email

Résolu/Fermé
underscape Messages postés 57 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 14 août 2009 - 13 juin 2009 à 15:30
underscape Messages postés 57 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 14 août 2009 - 15 juin 2009 à 13:28
Coucou,
J'essaie de me faire un petit client de messagerie mail et pour tout dire ca va a peu pres :(
disons que pour le recuperation des messages pas de probleme avec le sujet, date etc...
La ou je bloque c'est sur la lecture des mails.

Pour etre plus precise, sur les messages n'ayant aucune parties ou une pas de soucis cela est relativement simple.

Par contre des qu'il s'agit d'un message MULTIPART avec piece jointe ou juste un transfert de mails alors la bonjour la galère!

Par exemple je recois un mail MULTIPART en 2 parties

a l'aide de
$struct = imap_fetchstructure($stream, $NumMessage);

je recupere la structure de ce mail et je l'affiche :

print_r($struct);


cela donne :

stdClass Object
(
[type] => 1
[encoding] => 0
[ifsubtype] => 1
[subtype] => SIGNED
[ifdescription] => 0
[ifid] => 0
[bytes] => 50409
[ifdisposition] => 0
[ifdparameters] => 0
[ifparameters] => 1
[parameters] => Array
(
[0] => stdClass Object
(
[attribute] => PROTOCOL
[value] => application/x-pkcs7-signature
)

[1] => stdClass Object
(
[attribute] => MICALG
[value] => sha1
)

[2] => stdClass Object
(
[attribute] => BOUNDARY
[value] => ------------ms050100070502000904020808
)

)

[parts] => Array
(
[0] => stdClass Object
(
[type] => 1
[encoding] => 0
[ifsubtype] => 1
[subtype] => MIXED
[ifdescription] => 0
[ifid] => 0
[bytes] => 42317
[ifdisposition] => 0
[ifdparameters] => 0
[ifparameters] => 1
[parameters] => Array
(
[0] => stdClass Object
(
[attribute] => BOUNDARY
[value] => ------------040300000509010000050902
)

)

[parts] => Array
(
[0] => stdClass Object
(
[type] => 0
[encoding] => 4
[ifsubtype] => 1
[subtype] => PLAIN
[ifdescription] => 0
[ifid] => 0
[lines] => 12
[bytes] => 225
[ifdisposition] => 0
[ifdparameters] => 0
[ifparameters] => 1
[parameters] => Array
(
[0] => stdClass Object
(
[attribute] => CHARSET
[value] => ISO-8859-1
)

[1] => stdClass Object
(
[attribute] => FORMAT
[value] => flowed
)

)

)

[1] => stdClass Object
(
[type] => 5
[encoding] => 3
[ifsubtype] => 1
[subtype] => JPEG
[ifdescription] => 0
[ifid] => 0
[bytes] => 39712
[ifdisposition] => 1
[disposition] => INLINE
[ifdparameters] => 1
[dparameters] => Array
(
[0] => stdClass Object
(
[attribute] => FILENAME
[value] => 125.jpg
)

)

[ifparameters] => 1
[parameters] => Array
(
[0] => stdClass Object
(
[attribute] => NAME
[value] => 125.jpg
)

)

)

[2] => stdClass Object
(
[type] => 0
[encoding] => 3
[ifsubtype] => 1
[subtype] => PLAIN
[ifdescription] => 0
[ifid] => 0
[lines] => 24
[bytes] => 1784
[ifdisposition] => 1
[disposition] => INLINE
[ifdparameters] => 1
[dparameters] => Array
(
[0] => stdClass Object
(
[attribute] => FILENAME
[value] => a vendre.txt
)

)

[ifparameters] => 1
[parameters] => Array
(
[0] => stdClass Object
(
[attribute] => NAME
[value] => a vendre.txt
)

)

)

)

)

[1] => stdClass Object
(
[type] => 3
[encoding] => 3
[ifsubtype] => 1
[subtype] => X-PKCS7-SIGNATURE
[ifdescription] => 1
[description] => S/MIME Cryptographic Signature
[ifid] => 0
[bytes] => 7604
[ifdisposition] => 1
[disposition] => ATTACHMENT
[ifdparameters] => 1
[dparameters] => Array
(
[0] => stdClass Object
(
[attribute] => FILENAME
[value] => smime.p7s
)

)

[ifparameters] => 1
[parameters] => Array
(
[0] => stdClass Object
(
[attribute] => NAME
[value] => smime.p7s
)

)

)

)

)


Je vois donc que ce mail est en MULTIPART "([type] => 1)", qu'il est encodé en texte "[encoding] => 0", qu'il est signé numeriquement "[subtype] => SIGNED" et qu'il est en 2 parties.
Bon jusque la ca va, c'est maintenant que cela ce gatte.

En effet vu la structure du mail ci-dessus, comment trouvé le numéro de la partie contenant le texte?
Car pour l'afficher "imap_fetchbody()" a besoin du numéro de partie.

J'ai regarder sur le net et franchement c'est super reduit.

Merci de votre aide

2 réponses

underscape Messages postés 57 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 14 août 2009 3
15 juin 2009 à 12:40
J'ai du mal m'exprimé car visiblement personne n'a idée alors je vais retenter via une explication plus clair
(merci de supprimé ce post)
0
underscape Messages postés 57 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 14 août 2009 3
15 juin 2009 à 13:28
Pour ceux que ca interresse la soluce est la :

http://www.commentcamarche.net/forum/affich 12885176 php pb sur array
0