pb d'affichage de mail

Répondre
Astyax
le 27/10/2004 à 15:34
Astyax
Salut à tous:)
Aujourd'hui, mon problème de webmail se situe au niveau de l'affichage de mail lorsqu'il y a une pièce attachée. Le nom des pièces jointes est récupéré et on peut les télécharger, ça marche enfin (merci pour ton petit bout de script la Glob'...). En revanche, avec imap_fetchbody, j'ai le corps brut du message à savoir :
------_NextPart_001_0032_01C4BB63.8C5E6750 Content-Type: text/plain; charset"iso-8859-1" Content-Transfer-Encoding: quoted-printable coucou ------_NextPart_001_0032_01C4BB63.8C5E6750 Content-Type: text/html; charset"iso-8859-1" Content-Transfer-Encoding: quoted-printable
coucou
------_NextPart_001_0032_01C4BB63.8C5E6750--


Ma question est simple, comment faire pour avoir juste le texte en clair, le quoted printable ???
Vivants, vous êtes vivants...
XwZ
le 27/10/2004 à 15:54
XwZ
Salut,
imap_fetchstructure()

[Message modifié le 27/10/2004 à 15:57 par LA GLOBULE]
Si tu as envie de travailler assier toi et attend que ça passe.
Astyax
le 27/10/2004 à 16:44
Astyax
Resalut ;)
Je vois bien le morceau qui m'intéresse dans la structure, c'est :
[parts] => Array ( [0] => stdClass Object ( [type] => 0 [encoding] => 4 [ifsubtype] => 1 [subtype] => PLAIN [ifdescription] => 0 [ifid] => 0 [bytes] => 6 [ifdisposition] => 0 [ifdparameters] => 0 [ifparameters] => 1 [parameters] => Array ( [0] => stdClass Object ( [attribute] => charset [value] => iso-8859-1 ) ) )


Je pense que le texte est là dedans... Mais comment l'afficher puisqu'il n'apparait pas dans ce schéma ???
Vivants, vous êtes vivants...
LA GLOBULE
le 27/10/2004 à 17:16
LA GLOBULE
Si tu as du QUOTED-PRINTABLE, il faut decodé le mail avec la fonction imap_qprint.

Mais avant, il faut isoler de ton mail la partie qui a été émise en QUOTED-PRINTABLE.

[Message modifié le 27/10/2004 à 17:17 par LA GLOBULE]
Astyax
le 27/10/2004 à 17:41
Astyax
Salut la Glob';)

J'avoue que je comprends ce que tu me dis mais que je n'arrive pas à le faire. Par exemple, j'arrive à aller chercher la valeur que je veux dans la structure du mail, par contre je ne sais pas comment en extraire le texte. Pour les valeurs mime ou le nom des fichiers joints, pas de problème car je les vois avec print_r. En revanche, ce put*** de texte, je vois à peu près où il est mais je ne sais pas dans quelle boite ???

ps: Merci pour le code de téléchargement direct que tu m'as filer l'autre jour, j'ai réussi à l'utiliser tout à l'heure et ça fonctionne super !!!
Vivants, vous êtes vivants...
LA GLOBULE
le 27/10/2004 à 17:58
LA GLOBULE
Tout se base avec la structure du mail :

- récupération de la structure du mail
<?php
$struct_msg = @imap_fetchstructure($pop, $mail);
if (isset($struct_msg->parts) && (sizeof($struct_msg->parts) > 0))
GetPart($struct_msg, NULL, true);
else
GetSinglePart($struct_msg, imap_fetchheader($pop, $mail), @imap_body($pop, $mail));
?>


- les deux fonctions GetPart et GetSinglePart :
(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1789]ce lien[/lien])
Astyax
le 27/10/2004 à 18:41
Astyax
Merci la Glob', je vais etudier ça...
Vivants, vous êtes vivants...
Astyax
le 27/10/2004 à 22:05
Astyax
recoucou,
je viens de regarder avec attention les deux fonctions et je ne vois pas à quel endroit on trouve le texte du mail. On récupère le type mime et tout le bazar mais j'avoue ne pas voir à quel endroit et par quel moyen on récupère uniquement le texte. Je suis toujours un peu perdu. Pas par les fonctions car je comprends leur principe mais parce que je ne vois l'endroit où se trouve le texte... Et puis, la variable $display_rfc822, y'a quoi dedans ??? Je suis pas encore sorti de l'auberge les gars, je pense que je vais rester encore un peu...smiley
Vivants, vous êtes vivants...
Astyax
le 29/10/2004 à 10:06
Astyax
Bonjour à tous :)
Bon, j'ai creusé d'avantage les fonctions que tu m'as donné la Glob'. C'est vrai que j'étais passé un peu vite dessus, e comme tu veux me faire chercher... et ben ça marche, je cherche. Alors, si j'ai bien compris, la fonction getpart donne automatiquement la partie et la sous partie dans cette même partie en fonction du type mime (text, html, altenative etc...). Ca, j'ai compris.

Bon, imaginons que la partie est "alternative", moi je veux extraire uniquement la sous partie en html. Techniquement, j'obtiens parts[0] pour la première partie, et comme sous partie parts[1]. Ok, c'est le morceau qui m'intéresse.

je fais $souspartie=($structure->parts[0]->parts[1]);
Ca, ça me donne un objet.

Mais après, pour afficher ce morceau, j'utilise imp_fetchbody qui est composé comme ça :

imap_fetchbody ( resource imap_stream , int msg_number , string part_number , flags options )


Moi, ce que j'ai essayé de faire, c'est :

$corpsdumessage=imap_fetchbody($mbox,$idtmail,$souspartie);

Mais ça ne marche pas...

Pour afficher le contenu d'un message, il faut bien passer par imap_fetchbody non ?
Vivants, vous êtes vivants...
Répondre
LoadingChargement en cours