par
pierrego » 28 juin 2012, 13:10
Bonjour,
J'ai un formulaire dans lequel on peut insérer une pièce jointe ; je la récupère bien par e-mail ; cependant, je souhaiterais qu'elle prenne le nom et le format d'origine à savoir son nom+ pdf ; or dans ma mon mail : j'ai le nom indiqué dans le script : $_FILES['fichier']['name']
Merci
Voici le code php :
<?php
if ((isset($_FILES['fichier']['name'])&&($_FILES['fichier']['error'] == UPLOAD_ERR_OK))) {
$chemin_destination = 'F:\\EasyPHP5.2.10\\www\\TNCIS\\upload\\';
move_uploaded_file($_FILES['fichier']['tmp_name'], $chemin_destination.$_FILES['fichier']['name']);
}
?>
<?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.= "Vous trouverez ci-dessous la livraison a effectuer pour le : {$_POST['date_ramassage']}"."<br>";
$texte.= " Nom societe: {$_POST['comptes']}"."<br>";
$texte.= " Nom: {$_POST['nom_responsable']}"."<br>";
$texte.= " Prenom: {$_POST['prenom_responsable']}"."<br>";
$texte.= " Telephone: {$_POST['telephone_responsable']}";
// Traitement pour attacher une PJ
// Dans mon exemple, il s'agit d'un fichier pdf, il faut mettre le bon mime type
$attachement = "\n------=$limite\n";
$attachement .= "Content-Type: application/pdf; name=\$_FILES['fichier']['name']\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\$_FILES['fichier']['name']\"\n\n";
// Ca y est on joint le fichier en l'encodant en base 64
$attachement .= chunk_split(base64_encode($_FILES['fichier']['name']));
// 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";
}
?>
Bonjour,
J'ai un formulaire dans lequel on peut insérer une pièce jointe ; je la récupère bien par e-mail ; cependant, je souhaiterais qu'elle prenne le nom et le format d'origine à savoir son nom+ pdf ; or dans ma mon mail : j'ai le nom indiqué dans le script : $_FILES['fichier']['name']
Merci
Voici le code php :
<?php
if ((isset($_FILES['fichier']['name'])&&($_FILES['fichier']['error'] == UPLOAD_ERR_OK))) {
$chemin_destination = 'F:\\EasyPHP5.2.10\\www\\TNCIS\\upload\\';
move_uploaded_file($_FILES['fichier']['tmp_name'], $chemin_destination.$_FILES['fichier']['name']);
}
?>
<?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.= "Vous trouverez ci-dessous la livraison a effectuer pour le : {$_POST['date_ramassage']}"."<br>";
$texte.= " Nom societe: {$_POST['comptes']}"."<br>";
$texte.= " Nom: {$_POST['nom_responsable']}"."<br>";
$texte.= " Prenom: {$_POST['prenom_responsable']}"."<br>";
$texte.= " Telephone: {$_POST['telephone_responsable']}";
// Traitement pour attacher une PJ
// Dans mon exemple, il s'agit d'un fichier pdf, il faut mettre le bon mime type
$attachement = "\n------=$limite\n";
$attachement .= "Content-Type: application/pdf; name=\$_FILES['fichier']['name']\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\$_FILES['fichier']['name']\"\n\n";
// Ca y est on joint le fichier en l'encodant en base 64
$attachement .= chunk_split(base64_encode($_FILES['fichier']['name']));
// 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";
}
?>