Probleme de piéce jointe

Résolu
easynoob Messages postés 19 Date d'inscription dimanche 14 janvier 2007 Statut Membre Dernière intervention 14 septembre 2011 - 19 mai 2009 à 14:13
easynoob Messages postés 19 Date d'inscription dimanche 14 janvier 2007 Statut Membre Dernière intervention 14 septembre 2011 - 19 mai 2009 à 15:02
Bonjour à tous,
J'ai un souci avec une fonction d'envoie de mail. Je join une piéce jointe, mais a la réception du mail lors de l'ouverture il m'affiche rien de la piéce jointe d'origine.
Si une personne trouve la solution je suis preneur!!!
Merci de votre aide

Code affichage du formulaire:
<?php
 connexion(); $result mysql_query("SELECT * FROM `recrutement` WHERE id_recrutement '".$_GET['annonce']."'") or die(mysql_error());
 while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
 {
?>


<form enctype="multipart/form-data" action="index.php?page=form_email" method=POST>
<center>
De:

<?php echo 'Sujet:

'; ?>
Texte :
<textarea name="message" rows="15" cols="40"></textarea>

Curriculum vitae :

</center>
</form>
<?php
 }
?>

traitement:
<?php
     //-----------------------------------------------
     //DECLARE LES VARIABLES
     //-----------------------------------------------


  $email_expediteur=$_POST['from']; 
  $email_reply=$_POST['from'];
  $destinataire = [mailto:'test@[...].com' 'test@[...].com'];
  $file= $_FILES['monfichier']['name'];
  
     //-----------------------------------------------
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
     //-----------------------------------------------


     $frontiere = '-----=' . md5(uniqid(mt_rand()));


     //-----------------------------------------------
     //HEADERS DU MAIL
     //-----------------------------------------------


     $headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
     $headers .= 'Return-Path: <'.$email_reply.'>'."\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 .= $_POST['message']."\n\n";
     $message .= '--'.$frontiere."\n";
 
     //-----------------------------------------------
     //PIECE JOINTE
  //-----------------------------------------------
 


  $message .= "Content-Type: application/msword; name="$file"\n"; 
  $message .= "Content-Transfer-Encoding: base64\n"; 
  $message .= "Content-Disposition: attachment; filename="$file"\n\n"; 
  
  $fd = fopen( $file, "r" ); 
  $contenu = fread( $fd, filesize( $file ) ); 
  $fp = fopen($file, "rb" ); 
  $buff = fread($fp, filesize($file)); 
  fclose($fp); 
  $message .= chunk_split(base64_encode($buff));
  
  $message .= "\n\n\n------=$frontiere\n";


     if(mail($destinataire,$sujet,$message,$headers))
     {
          echo 'Le mail a été envoyé';
     }
     else
     {
          echo 'Le mail n\'a pu être envoyé';
     }
?>

1 réponse

easynoob Messages postés 19 Date d'inscription dimanche 14 janvier 2007 Statut Membre Dernière intervention 14 septembre 2011 1
19 mai 2009 à 15:02
Probléme trouvé...
Merci a ceux ki l'on lu...
Proble venant du fichier temporaire copier sur le serveur:

solutions:
<?php
     //-----------------------------------------------
     //DECLARE LES VARIABLES
     //-----------------------------------------------


     $email_expediteur=$_POST['from'];
     $email_reply=$_POST['from'];
  $destinataire = [mailto:'test@cliexupery.com' 'test@cliexupery.com'];
  $file= $_FILES['monfichier']['name'];
  $temp=$_FILES['monfichier']['tmp_name'];
 
     //-----------------------------------------------
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
     //-----------------------------------------------


     $frontiere = '-----=' . md5(uniqid(mt_rand()));


     //-----------------------------------------------
     //HEADERS DU MAIL
     //-----------------------------------------------


     $headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
     $headers .= 'Return-Path: <'.$email_reply.'>'."\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 .= $_POST['message']."\n\n";
 $message .= '--'.$frontiere."\n";
 
     //-----------------------------------------------
     //PIECE JOINTE
  //-----------------------------------------------
 


  $message .= "Content-Type: application/msword; name="$file"\n"; 
  $message .= "Content-Transfer-Encoding: base64\n"; 
  $message .= "Content-Disposition: attachment; filename="$file"\n\n"; 
  
  $fd = fopen( $temp, "r" ); 
  $contenu = fread( $fd, filesize( $temp ) ); 
  $fp = fopen($temp, "rb" ); 
  $buff = fread($fp, filesize($temp)); 
  fclose($fp); 
  $message .= chunk_split(base64_encode($buff));
  
  $message .= "\n\n\n------=$frontiere\n";


     if(mail($destinataire,$sujet,$message,$headers))
     {
          echo 'Le mail a été envoyé';
     }
     else
     {
          echo 'Le mail n\'a pu être envoyé';
     }
?>
1
Rejoignez-nous