IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] pièce jointe s'affiche codée dans corps du mail


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [Mail] pièce jointe s'affiche codée dans corps du mail
    Bonjour,

    J'ai un gros souci,
    je dois pour demain solutionner un problème de code sur le site web de la société de mon boss. J'ai solutionné 90% des problèmes et le code fonctionne "presque" bien.
    problème : lors de l'envoi du mail de confirmation (pour l'administration du site) avec pièce jointe (préalablement uploadé par formulaire), la pièce jointe est la, on peut la consulter sans souci, MAIS elle s'affiche aussi sous forme codée (...AAABBBCCCXYZ...) dans le corps du mail. Perso ca me dérangerais pas, mais pour montrer au patron ça fait crade.

    Vous auriez une idée du pourquoi ça me fait ça?

    voici mon code test

    Code : PHP - Afficher / masquer les numéros de ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    <html>
    <body>
     
    <?
    $file_temp = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size'];
    $file_name = $_FILES['file']['name'];
    $move = 'upload/';
     
     
    if(isset($_POST['message']))
    {
    $message_text=$_POST['message'];
     
    move_uploaded_file($file_temp,$move.$file_name);
     
    $file_a_traitee = $move.$file_name;
     
    $file = fopen($file_a_traitee,'r');
    $read = fread($file,filesize($file_a_traitee));
    fclose($file);
     
    //----------------------------------------------- 
         //DECLARE LES VARIABLES 
         //----------------------------------------------- 
     
         $email_expediteur='votre_mail@fai.fr'; 
         $email_reply='email_de_reponse@fai.fr'; 
             $sujet="test attachement de fichier";
             $destinataire="ginnie0708@yahoo.fr";
     
         //----------------------------------------------- 
         //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML 
         //----------------------------------------------- 
     
         $frontiere = '-----=' . md5(uniqid(mt_rand())); 
     
         //----------------------------------------------- 
         //HEADERS DU MAIL 
         //----------------------------------------------- 
     
         $headers = 'From: "Nom" <'.$email_expediteur.'>'."\n"; 
         $headers .= 'MIME-Version: 1.0'."\n"; 
         $headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"'; 
     
         //----------------------------------------------- 
         //MESSAGE TEXTE 
         //----------------------------------------------- 
         $message = 'This is a multi-part message in MIME format.'."\n\n"; 
     
         $message .= '--'.$frontiere."\n"; 
         $message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n"; 
         $message .= 'Content-Transfer-Encoding: 8bit'."\n\n"; 
         $message .= $message_text."\n\n"; 
     
         //----------------------------------------------- 
         //PIECE JOINTE 
         //----------------------------------------------- 
     
             $message .= '--'.$frontiere."\n"; 
         $message .= 'Content-Type: text/vnd.ms-word; name="'.$file_name.'"'."\n"; 
             $message .= 'Content-Transfer-Encoding: base64'."\n"; 
             $message .= 'Content-Disposition: attachement; filename="'.$file_name.'"'."\n\n";
             $message .= chunk_split(base64_encode($read))."\n";
             $message .= '--'.$frontiere.'--'."\n";
     
     
     
         if(mail($destinataire,$sujet,$message,$headers)) 
         { 
              echo 'Le mail a été envoyé</br>'; 
         } 
         else 
         { 
              echo 'Le mail n\'a pu être envoyé</br>'; 
         } 
    }
    ?>
    bonjour,</br>
    veuillez cliquez sur le bouton pour envoyer un mail test</br>
    <form method="post" action="index.php" enctype="multipart/form-data">
    <input type="text" name="message"/></br></br>
    <input type="file" name="file" /></br></br>
    <input type="submit" value="Envoyez un mail test"/>
    </form>
    </body>
    </html>
    et surtout merci pour votre aide

  2. #2
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Ne faudrait-il pas remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $message .= chunk_split(base64_encode($read))."\n";
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $message .= chunk_split(base64_encode(file_get_contents($read)))."\n";

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Identique
    Merci pour ta proposition, mais les deux solutions sont identiques. Au lieu de faire un file_get_contents, je lis le fichier via fopen, le résultat est le même. Les deux méthodes fonctionnent parfaitement.

    Malheureusement le problème ne vient pas de là et sans vraiment savoir comment, j'ai résolu le souci (Miracle?). Alors ne me demandez pas comment je n'en sais strictement rien... j'ai remplacé un terme text par une variable et puis le problème était résolu, souci c'est que niveau programmation, que je mette le terme en lui même ou une variable qui contienne ce meme terme, cela ne devrait rien changer... non?

    Néanmoins merci de cette suggestion

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. rejeter mail avec pièce jointe et affiche un message à la place
    Par vicky777plus dans le forum Administration système
    Réponses: 0
    Dernier message: 11/08/2014, 20h04
  2. Réponses: 0
    Dernier message: 21/11/2012, 17h52
  3. [AC-2007] Afficher une pièce jointe de type image dans un état
    Par lio33 dans le forum VBA Access
    Réponses: 0
    Dernier message: 15/05/2012, 16h28
  4. [Mail] mail pièce jointe
    Par yAnSoLo82 dans le forum Langage
    Réponses: 2
    Dernier message: 27/01/2006, 13h48
  5. [Mail] [fonction mail] Pièces jointes
    Par poussinphp dans le forum Langage
    Réponses: 2
    Dernier message: 30/12/2005, 12h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo