Bonjour,
J'ai un formulaire dans lequel l'utilisateur doit joindre un fichier pdf ; le script php renvoi les données et le fichier en pièce jointe : cela fonctionne cependant, j'ai le message suivant :
Warning: file_get_contents(ESSAI.pdf) [function.file-get-contents]: failed to open stream: No such file or directory in F:\EasyPHP5.2.10\www\TNCIS\envoi6.php on line 25
J'ai bien la pièce jointe mais elle est vide.
Pourriez-vous m'aider ; ci-dessous, le code php :
Merci
<?php
// Destinataire du mail
$destination = "[email protected]";
// sujet du mail
$sujet = "Livraison";
// Les headers pour un mail multiparts
$headers= "MIME-Version: 1.0\n";
$headers.= "From: ".$_POST["email"]." <".$_POST["email"].">\n";
$headers.= "Content-type: multipart/mixed;\n";
// Chaine permettant de différencier les différentes parties du mail
$limite = '_parties_'.md5(uniqid (rand()));
$headers.= " boundary=\"----=$limite\"\n\n";
// Première partie, corps du mail en HTML
$texte = "------=$limite\n";
$texte.= "Content-type: text/html; charset=\"iso-8859-1\"\n\n";
$texte.="<HTML><HEAD></HEAD><BODY>Oh un mail !</BODY></HTML>";
// Traitement pour attacher une PJ
// D'abord on lit le fichier
$fichier = 'ESSAI.pdf';
$contenu = file_get_contents($fichier);
$attachement = "\n------=$limite\n";
// Dans mon exemple, il s'agit d'un fichier pdf, il faut mettre le bon mime type
$attachement .= "Content-Type: application/pdf; name=\"ESSAI.pdf\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"ESSAI.pdf\"\n\n";
// Ca y est on joint le fichier en l'encodant en base 64
$attachement .= chunk_split(base64_encode($contenu));
// enfin on envoi le mail
mail($destination, $sujet, $texte.$attachement, $headers);
echo'Vos données entrées : '.'<br/>';
if(isset($_POST['envoi'])){
foreach($_POST as $index=>$valeur){
echo '- '.$index.' : '.$valeur.'<br/>';
}
}
else {
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message";
}
?>