waterw72
Messages postés63Date d'inscriptionjeudi 30 septembre 2004StatutMembreDernière intervention18 juillet 2008
-
5 oct. 2007 à 17:55
waterw72
Messages postés63Date d'inscriptionjeudi 30 septembre 2004StatutMembreDernière intervention18 juillet 2008
-
9 oct. 2007 à 17:11
Bonjour,
J'aimerais savoir pourquoi lorsque je lis un mail que je me suis envoyé avec une pièce jointe à partir de mon " webmail " maison, les entêtes s'affiche dans le texte du message.
Exemple :
Lorque je lis ce message à partir de squirrel webmail (par exemple) cela fonctionne correctement et je peux télécharger ma pièce jointe.
Quelqu'un aurais une idée svp?
waterw72
Messages postés63Date d'inscriptionjeudi 30 septembre 2004StatutMembreDernière intervention18 juillet 2008 9 oct. 2007 à 17:11
Bonjour,
Voici la fonction :
function lireEmail( $id_msg, $num_partie, $partie, $niveau, $alternative= 0 )
{
//tableau contenant les informations static $retour Array('message'> '' );
//si la partie contient des infomrations sru la disposition
//et que la chaine indique "attachment", alors nous avons
//affaire à une pièce jointe
if ( $partie->ifdisposition && strtolower($partie->disposition) == "attachment" )
{
echo "
fichier ";
//on récupère le nom et quelques infos
//qu'on ajoute au tableau de résultats.
//on suppose la fonction trouverNom qui parourt
//le tableau parameters jusqu'à trouver le paramètre
//name, et en retourner la valeur
if ($partie->ifdparameters) { $fichier array( 'nom'> $this->trouverNom($partie->dparameters),
'numero_partie' => $num_partie,
'encodage' => $partie->encoding,
'taille' => $partie->bytes);
}
if ($partie->ifparameters) { $fichier array( 'nom'> $this->trouverNom($partie->parameters),
'numero_partie' => $num_partie,
'encodage' => $partie->encoding,
'taille' => $partie->bytes);
}
$retour['fichiers'][] = $fichier;
}
else
{
switch ($partie->type )
{
case TYPETEXT: // si c'est du texte
if ( $alternative) // et que c'est un texte avec une alternative
{
if ($this->mail_format == $partie->subtype) // on fait un test du format à afficher
{
$texte = imap_fetchbody( $this->flux, $id_msg, $num_partie);
$retour['message'] = "".nl2br($this->decoder($texte,$partie->encoding))."";
}
}
else // si c'est pas alternatif, on affiche
{
if( !empty($partie->parts) )
{
// on lit le texte à la partie qui nous interesse.
$texte = imap_fetchbody( $this->flux, $id_msg, $num_partie);
$retour['message'] = "".$this->decoder($texte,$partie->encoding)."";
}
else
{
if ($partie->subtype == 'PLAIN') // on lit le texte PLAIN
{
$texte = imap_body( $this->flux, $id_msg);
$retour['message'] = "".nl2br($this->decoder($texte,$partie->encoding))."";
}
else if($partie->subtype == 'HTML') // on le texte HTML
{
$texte = imap_body( $this->flux, $id_msg);
$retour['message'] = "".$this->decoder($texte,$partie->encoding)."";
}
}
}
break;
case TYPEMULTIPART:// si c'est pas du texte alors on se rappelle
if ($partie->subtype == "ALTERNATIVE")
{
$alternative = 1;
}
//on lit chaque sous parts.
for ( $i=0;$i<count($partie->parts); $i++)
{
if ($niveau != 0 )
{
$pos = strrpos($num_partie, ".");
if ($pos === false) { // si on trouve pas de point, on en ajoute un sinon pas : pas de double point
$num_partie = $num_partie.".";
}
}
else {
$num_partie = "";
}
$this->lireEmail($id_msg, $num_partie.($i + 1), $partie->parts[$i], 1, $alternative);
}
break;
/*case TYPEMESSAGE:
case TYPEAPPLICATION:
case TYPEAUDIO:
case TYPEIMAGE:
case TYPEVIDEO:
case TYPEMODEL:*/
default:
if ($partie->ifdparameters) { $fichier array( 'nom'> $this->trouverNom($partie->dparameters),
'numero_partie' => $num_partie,
'encodage' => $partie->encoding,
'taille' => $partie->bytes);
}
if ($partie->ifparameters) { $fichier array( 'nom'> $this->trouverNom($partie->parameters),
'numero_partie' => $num_partie,
'encodage' => $partie->encoding,
'taille' => $partie->bytes);
}
$retour['fichiers'][] = $fichier;
break;
}
}
return $retour;
}
//l'appel à la fonction
$struct = imap_fetchstructure($this->flux,$id_msg);
$partie = $struct;
$email = $this->lireEmail($id_msg, 0, $partie, 0);