\r\n"; $headers .= "Reply-To: {$pro_email}\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: multipart/mixed; boundary=\"{$boundary}\"\r\n"; $body = "--{$boundary}\r\n"; $body .= "Content-Type: text/plain; charset=\"UTF-8\"\r\n"; $body .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; $body .= $message_text . "\r\n"; if (!empty($_FILES['pieces_jointes']['name'][0])) { $allowed_extensions = ['jpg','jpeg','png','pdf','doc','docx','xls','xlsx','zip']; $max_file_size = 10 * 1024 * 1024; // 10 Mo par fichier foreach ($_FILES['pieces_jointes']['tmp_name'] as $key => $tmp_name) { if ($_FILES['pieces_jointes']['error'][$key] === UPLOAD_ERR_NO_FILE) { continue; } if ($_FILES['pieces_jointes']['error'][$key] !== UPLOAD_ERR_OK) { $error = "Erreur lors de l'envoi d'un fichier joint."; break; } $file_name = $_FILES['pieces_jointes']['name'][$key]; $file_size = $_FILES['pieces_jointes']['size'][$key]; $file_tmp = $_FILES['pieces_jointes']['tmp_name'][$key]; $ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION)); if (!in_array($ext, $allowed_extensions, true)) { $error = "Type de fichier non autorisé : " . htmlspecialchars($file_name); break; } if ($file_size > $max_file_size) { $error = "Le fichier " . htmlspecialchars($file_name) . " dépasse 10 Mo."; break; } if (is_uploaded_file($file_tmp)) { $file_content = chunk_split(base64_encode(file_get_contents($file_tmp))); $body .= "--{$boundary}\r\n"; $body .= "Content-Type: application/octet-stream; name=\"" . addslashes($file_name) . "\"\r\n"; $body .= "Content-Transfer-Encoding: base64\r\n"; $body .= "Content-Disposition: attachment; filename=\"" . addslashes($file_name) . "\"\r\n\r\n"; $body .= $file_content . "\r\n"; } } } $body .= "--{$boundary}--"; if ($error === '') { $sent = mail($to, $subject, $body, $headers); if ($sent) { $success = true; } else { $error = "L'e-mail n'a pas pu être envoyé. Vérifie que la fonction mail() est active sur ton hébergement."; } } } } ?>