Bonjour.
Je suis sur OVH (pour situer l'environnement)
Dans le même dossier j'ai :
- mon fichier mail3.php avec le formulaire
<html> <body> <form ENCTYPE="multipart/form-data" action="./mail4.php" method=POST> <center> De: <input type=text name = "from" size="30"><br> Destinataire: <input type=text name = "to" size="30"><br> Sujet: <input type=text name = "sujet" size="30"><br><br> Texte :<br><textarea name="message" rows="15" cols="40"></textarea><br> <INPUT TYPE=FILE NAME="monfichier"><BR> <input type=submit value="envoi"> </center> </form> </body> </html>
- ma page mail4.php qui m'envoie les infos
<html> <body> <center> <? $name_file = $_FILES['monfichier']['name']; $source=$_FILES['monfichier']['tmp_name']; move_uploaded_file($source, "./".$name_file); $extension=get_extension($name_file); $type="text/plain"; if($type=="doc") { $type="text/vnd.ms-word"; } else if($type=="xls") { $type="text/vnd.ms-excel"; } $type2="image/png"; if($extension=="gif") { $type2="image/gif"; } else if($extension=="bmp") { $type2="image/bmp"; } function get_extension($filename) { $parts = explode('.',$filename); $last = count($parts) - 1; $ext = $parts[$last]; return $ext; } //---------------------------------- // Construction de l'entête //---------------------------------- if($_POST['to']!="") { $boundary = "-----=".md5(uniqid(rand())); $header = "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n"; $header .= "\r\n"; $msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n"; $msg .= "--$boundary\r\n"; $msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n"; $msg .= "Content-Transfer-Encoding:8bit\r\n"; $msg .= "\r\n"; $msg .= $_POST['message']; $msg .= "\r\n"; if($name_file!="") { $file = $name_file; $fp = fopen($file, "rb"); $attachment = fread($fp, filesize($file)); fclose($fp); $attachment = chunk_split(base64_encode($attachment)); $msg .= "--$boundary\r\n"; $msg .= "Content-Type: $type2; name=\"$file\"\r\n"; $msg .= "Content-Transfer-Encoding: base64\r\n"; $msg .= "Content-Disposition: inline; filename=\"$file\"\r\n"; $msg .= "\r\n"; $msg .= $attachment . "\r\n"; $msg .= "\r\n\r\n"; $msg .= "--$boundary--\r\n"; } $destinataire = $_POST['to']; $expediteur = $_POST['from']; $reponse = $expediteur; echo "Mail envoyé à $destinataire"; mail($destinataire, $_POST['sujet'], $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header); } if($name_file!="") { unlink($name_file); } print("<br>\n"); print("<br><A href=./mail3.php target=\"principal\"><font size=2>Envoyer un autre mail</font></A>"); ?> </center> </body> </html>
Quand je cliques sur "envoie" je reçois bien le mail... mais j'ai un problème avec le fichier. Il n'est pas en pièce jointe mais contenu dans le corps du mail... en gros j'ai une suite incessante de caractère
Quelqu'un voit-il où est l'erreur ? j'ai beau chercher et je ne trouve pas
Si vous trouvez je serait soulagé parce que le client ne va pas tarder à revenir à la charge
Merci d'avance