1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| <?php
error_reporting(E_ALL); ini_set("display_errors", 1); //Affichier l'erreur
if (get_magic_quotes_gpc()){
$nom = stripslashes(htmlentities($_POST['nom']));
$email_from = stripslashes(htmlentities($_POST['email']));
$message = stripslashes(htmlentities($_POST['message']));
}else{
//Évitez les injections en cas de courrier HTML
$nom = htmlentities($_POST['nom']);
$email_from = htmlentities($_POST['email']);
$message = htmlentities($_POST['message']);
}
if(preg_match("#@(hotmail|live|msn).[a-z]{2,4}$#", $email_from))
{
$passage_ligne = "\n";
}
else
{
$passage_ligne = "\r\n";
}
$email_to = "moi@gmail.com"; //Recepteur
$email_subject = "J'ai envoyé le document"; //Sujet
$boundary = md5(rand()); // Clé de limite aléatoire
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$headers = "From: \"".$nom."\"<".$email_from.">" . $passage_ligne; //Expéditeur
$headers.= "Reply-to: \"".$nom."\" <".$email_from.">" . $passage_ligne; //Expéditeur
$headers.= "MIME-Version: 1.0" . $passage_ligne; //MIME Version
$headers.= 'Content-Type: multipart/mixed; boundary='.$boundary .' '. $passage_ligne; //Contenu (2 versions ex: text / plain et text / html)
$email_message = '--' . $boundary . $passage_ligne; //
$email_message .= "Content-Type: text/plain; charset=\"utf-8\"" . $passage_ligne; //Contenu type
$email_message .= "Content-Transfer-Encoding: 8bit" . $passage_ligne; //Encoding
$email_message .= $passage_ligne .clean_string($message). $passage_ligne; //Contenu
//Pièce Jointe
if(isset($_FILES["fichier"]) && $_FILES['fichier']['name'] != ""){ // Vérifier si le fichier existe
$nom_fichier = $_FILES['fichier']['name'];
$source = $_FILES['fichier']['tmp_name'];
$type_fichier = $_FILES['fichier']['type'];
$taille_fichier = $_FILES['fichier']['size'];
if($nom_fichier != ".htaccess"){ // Vérifiez si ce n'est pas un fichier .htaccess
if($type_fichier == "application/msword"
|| $type_fichier == "application/msword"
|| $type_fichier == "application/rtf"
|| $type_fichier == "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|| $type_fichier == "application/pdf"){ // Type pièce
if ($taille_fichier <= 4000000) { // Taille supérieure à 4 Mo
$tabRemplacement = array("é"=>"e", "è"=>"e", "à"=>"a"); //Changing special characters
$handle = fopen($source, 'n'); //Ouverture du fichier
$content = fread($handle, $taille_fichier); //Lecture du fichier
$encoded_content = chunk_split(base64_encode($content)); //Encodage
$f = fclose($handle); //Fermeture du fichier
$email_message .= $passage_ligne . "--" . $boundary . $passage_ligne; // Deuxième ouverture des limites
$email_message .= 'Content-type:'.$type_fichier.';name="'.$nom_fichier.'"'."\n";
$email_message .='Content-Disposition: attachment; filename="'.$nom_fichier.'"'."\n"; // Informer qu'il y a une pièce jointe
$email_message .= 'Content-transfer-encoding:base64'."\n"; //Encodage
$email_message .= "\n"; //Blank line. IMPORTANT !
$email_message .= $encoded_content."\n"; //Pièce jointe
}else{
// Message d'erreur si la pièce jointe supérieure à 2 Mo
$email_message .= $passage_ligne ."L'utilisateur a tenté de vous envoyer une pièce jointe mais celle ci était superieure à 4Mo.". $passage_ligne;
}
}else{
// Message d'erreur si le type de contenu incorrect pour la pièce jointe
$email_message .= $passage_ligne ."L'utilisateur a tenté de vous envoyer une pièce jointe mais elle n'était pas au bon format.". $passage_ligne;
}
}else{
// Message d'erreur pour l'envoi d'un fichier .htaccess
$email_message .= $passage_ligne ."L'utilisateur a tenté de vous envoyer une pièce jointe .htaccess.". $passage_ligne;
}
}
$email_message .= $passage_ligne . "--" . $boundary . "--" . $passage_ligne; // Fermeture des limites
if(mail($email_to,$email_subject, $email_message, $headers)==true){ //Envoi de mail
header('Location: local.html'); //Redirection
}
?> |
Partager