zazounn  | Bonjour,     Je cherche à envoyer un mail avec pièces jointes a plusieurs destinataires.
 En gros, j'ai un formulaire où les gens inscrivent leur adresse email et c enregistrer direct ds la bdd.
 Ensuite, j'ai fais un formulaire avec "sujet", "message", et "pièce jointe" et quand on clik sur envoyer, cela envoie a toutes les adresses email contenues dans la base de données.
 J'ai fais quinze mille essais, et cela marche pas a chaque fois. La plupart du temps j'ai bien le message, mais sans la pièce jointe. Ou alors j'ai la pièce jointe mais sans le message...   Comment faut il faire ?
   Ci dessous mon code:
  Citation :
 
 <p class="titre">Envoi de la newsletter <br>
   </P>
     <p class="bla"><b><u></b></u>
 <fieldset>
        <legend><b>Formulaire:</B></legend>
       <form name="contact" method="post" action="index2.php?page=newslet" enctype="multipart/form-data">
 <P>Sujet:
 <INPUT type="text" name="sujet" size=50>
 <p>
 Message:
 <textarea name="msg" cols=90 rows=25></textarea>
   <input type="hidden" name="max_file_size" value="100000">   Pièce Jointe:<input name="attach" type="file" size="16">
 </p>
 </p></fieldset><center><input type="reset" name="Reset" value="Effacer">   <INPUT type="submit" value="Envoyer"></center>
 </FORM> 
   |  
 
   newslet.php :
  
  Citation :
 
 <?php
 // Connexion au serveur mysql
 $connect = mysql_connect("***", "***", "***" );   // sélection de la base de données
 mysql_select_db("************" );
     //Le fichier attaché
 if (is_uploaded_file($attach)) {
     $file = fopen($attach, "r" );
     $contents = fread($file, $attach_size);
     $encoded_attach = chunk_split(base64_encode($contents));
     fclose($file);
      $entetes.= "MIME-version: 1.0\n";
    $entetes.= "Content-type: multipart/mixed; ";
    $entetes.= "boundary=\"Message-Boundary\"\n";
    $entetes.= "Content-transfer-encoding: 7BIT\n";
    $entetes.= "From : bideulemachin.fr";
    
     $body_top = "--Message-Boundary\n";
     $body_top .= "Content-type: text/plain; charset=US-ASCII\n";
     $body_top .= "Content-transfer-encoding: 7BIT\n";
     $body_top .= "Content-description: Mail message body\n\n";
       $msg .= "\n\n--Message-Boundary\n";
     $msg .= "Content-type: $attach_type; name=\"$attach_name\"\n";
     $msg .= "Content-Transfer-Encoding: BASE64\n";
     $msg .= "Content-disposition: attachment; filename=\"$attach_name\"\n\n";
     $msg .= "$encoded_attach\n";
     $msg .= "--Message-Boundary--\n";
   }
    $msg = $body_top.stripslashes($msg);
 // on selectionne tous les emails de la base de données
 $req=mysql_query("SELECT mail FROM emails" );
   // On envoi la lettre d'info à tous les emails
 // Boucle while pour parcourir les enregistrements
 // et envoi avec la fonction mail() placée dans la boucle...
   while ($res = mysql_fetch_array($req))
 {
 // Les variables sujet et message sont récupérés
 // via le formulaire d'envoi
   $retval = mail($res['mail'],$sujet,$msg,$entetes);
   // On affiche un message OK ou ERREUR pour chaque email
   echo '<center>Envoi à ' . $res['mail'] . ' : ';
 if ($retval) {
 echo 'OK<br>';
 } else {
 echo 'ERREUR<br>';
 }
 }
   // On ferme la connection
 mysql_close();
 ?> 
   |  
 
     Merci pour votre aide!
    
     |