Partage
  • Partager sur Facebook
  • Partager sur Twitter

mail php pièce jointe

Sujet résolu
    10 avril 2009 à 12:06:26

    Bonjour je souhaite rajouter une pièce jointe dans mon mail en php j'ai fais ceci :
    <?php
    		     $headers ='From: "'.$from.'"<secret@hto.fr>'."\n";
    		     $headers .='Reply-To: secret@hto.fr'."\n";
    		     $headers .= 'MIME-Version: 1.0'."\n"; 
    		     $headers .='Content-Type: multipart/mixed; charset="UTF-8"'."\n";
    		     $headers .='Content-Transfer-Encoding: 8bit';
    
    $message ='lalalal';
    
    if($_POST['pj'] != '')//piece jointe
    {
    switch(strrchr(basename($_POST['pj']), ".")){
    case ".gz": $ctype = "application/x-gzip"; break;
    case ".tgz": $ctype = "application/x-gzip"; break;
    case ".zip": $ctype = "application/zip"; break;
    case ".pdf": $ctype = "application/pdf"; break;
    case ".png": $ctype = "image/png"; break;
    case ".gif": $ctype = "image/gif"; break;
    case ".jpg": $ctype = "image/jpeg"; break;
    case ".txt": $ctype = "text/plain"; break;
    case ".htm": $ctype = "text/html"; break;
    case ".html": $ctype = "text/html"; break;
    default: $ctype = "application/octet-stream"; break;
    } 
    
    
         $message .= 'Content-Type: '.$ctype.'; name="'.$_POST['pj'].'"'."\n";
         $message .= 'Content-Transfer-Encoding: base64'."\n";
         $message .= 'Content-Disposition:attachement; filename="'.$_POST['pj'].'"'."\n\n"; 
         $message .= chunk_split(base64_encode(file_get_contents($_POST['pj'])))."\n"; 
    
    }
    


    Mais le problème c'est que cela ne marche pas et cela me renvoie tout le code du message :S sans mise en page et la pièce jointe je ne la recois pas!!

    Merci de votre aide !!
    • Partager sur Facebook
    • Partager sur Twitter
      10 avril 2009 à 12:44:36

      Normal, tu t'es trompé de variable. Remplace :

      <?php
           $message .= 'Content-Type: '.$ctype.'; name="'.$_POST['pj'].'"'."\n";
           $message .= 'Content-Transfer-Encoding: base64'."\n";
           $message .= 'Content-Disposition:attachement; filename="'.$_POST['pj'].'"'."\n\n"; 
           $message .= chunk_split(base64_encode(file_get_contents($_POST['pj'])))."\n"; 
      ?>
      


      Par :

      <?php
           $headers .= 'Content-Type: '.$ctype.'; name="'.$_POST['pj'].'"'."\n";
           $headers .= 'Content-Transfer-Encoding: base64'."\n";
           $headers .= 'Content-Disposition:attachement; filename="'.$_POST['pj'].'"'."\n\n"; 
           $headers .= chunk_split(base64_encode(file_get_contents($_POST['pj'])))."\n"; 
      ?>
      
      • Partager sur Facebook
      • Partager sur Twitter
        10 avril 2009 à 12:50:50

        Oui mais quand je fais comme cela il n'y a plus que la pièce jointe qui est transmise dans le message :S
        • Partager sur Facebook
        • Partager sur Twitter
          17 septembre 2013 à 9:53:42

          Voilà un code que j'ai réalisé en me servant de plusieurs tuto.

          Le seul qui fonctionne correctement pour moi :

          http://jv-web.blogspot.fr/2013/08/tuto-php-mail-piece-jointe.html

          • Partager sur Facebook
          • Partager sur Twitter
          Bebopalula

          mail php pièce jointe

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown