begin process at 2012 05 30 14:54:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

lire un email


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

lire un email

vendredi 5 octobre 2007 à 17:55:36 | lire un email

waterw72

Membre Club
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 :

This is a multi-part message in MIME format.
--------------ce714a64db6860eb24e784ed0935744b
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

test
--------------ce714a64db6860eb24e784ed0935744b
Content-type: application/octet-stream;
name="README.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="README.zip"

UEsDBBQAAAAIALWxlzJkEYVFrgAAAPMAAAAKAAAAUkVBRE1FLnR4dGWOMRLCMAwE+8zkD+5okrjn
AdR8w(...)

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?

Merci. (Grégory)
http://www.generationweb.be
samedi 6 octobre 2007 à 09:24:21 | Re : lire un email

coucou747

Administrateur CodeS-SourceS
Salut
ton webmail doit mal gerer les entetes... aucune autres explication... faudrait voir la source...


une recherche sur exalead [ Lien ]vous aurait peut-etre evite de poser cette question
mardi 9 octobre 2007 à 17:11:31 | Re : lire un email

waterw72

Membre Club
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 "<br/><b>fichier</b>";
                //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);


Cette discussion est classée dans : message, lire, email, content, lis


Répondre à ce message

Sujets en rapport avec ce message

envoyer les données d'un forumlaire par email [ par rem78 ] Bonjour,Voilà je souhaiterai envoyer les données de mon formulaire qui comporte 5 champs à savoir : Nom, Adresse, Société, Téléphone, Message, par ema Fonction email [ par milkasoprano ] Bonjour j'ai un petit renseignement a vous demander ! pk ma fonction mail ne fonctionne pas ? je ne recois pas demail ! le site supporte bien la fonct Probleme envoi mail a cause de PHP_SELF [ par 73manu73 ] Bonjour, J'ai trouvé un script php d'envoi mail que j'ai quelque peu modifié à ma convenace. Deux questions se posent à moi : 1. Lorsque j'utilise pb de formulaire mail lié à une variable GET [ par melanijasmin ] salut à tous !Je fais appel à vos lumières expertes, car je bloque depuis plusieurs jours sur un  "%@!!& " de formulaire auquel je ne comprends plus r code envoie mail par formulaire [ par voidmain ] Bonjour à tous, je suis en train de tester un code pour l'envoie de mail par formulaire avec vérification des champs et du format de l'email, tout ce Pb, Formulaire / Mail [ par MaSenCo ] Bonjour,Je viens de mettre un formulaire / mail sur mon site, et j'ai un petit problème avec la fonction mail, c'est à dire que je reçois bien le mail avoir un message sur ma boiteEmail d'après un formulaire en flash [ par asmathamim ] Bon Merci d'abord pour votre aidej'ai sur mon site un contact ou j'ai mis un formulaire qui se constitue de 3 champ nom, Email, et message je veux qu' Récup 2 données d'un formulaire --- à l'aide!!!!!! [ par ladafan ] Bonjour tout le monde,J'ai un gros probleme de recup de mes données sur un formulaire...Je voudrai qu'elles me soient envoyées sur mail...Voici la pag envoie d'un mail en Php - Javascript avec une seule page Php [ par elfigone81 ] Bonjour,Je voulais demander de l'aide pour le script suivant. En faite je voudrai envoyer un mail avec une seule page php contenant également un petit Probleme de verification de champ de formulaire [ par simsgodzilla ] Bonjour!Mon formulaire marche impect sauf qu'il corrige pas les erreurs comme je lui demande...Quelqu'un aurait il une réponse? Merci! // Interface


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,666 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales