false, 'message' => 'Méthode non autorisée.']); exit; } // Protection anti-spam (honeypot) if (!empty($_POST['website'])) { http_response_code(400); echo json_encode(['success' => false, 'message' => 'Spam détecté.']); exit; } // Récupération et nettoyage des champs $nom = trim(strip_tags($_POST['nom'] ?? '')); $email = trim(strip_tags($_POST['email'] ?? '')); $message = trim(strip_tags($_POST['message'] ?? '')); // Validation $errors = []; if (empty($nom)) $errors[] = 'Le nom est requis.'; if (empty($email)) $errors[] = "L'adresse email est requise."; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) $errors[] = "L'adresse email n'est pas valide."; if (empty($message)) $errors[] = 'Le message est requis.'; if (strlen($message) > 5000) $errors[] = 'Le message est trop long (5000 caractères max).'; if (!empty($errors)) { http_response_code(422); echo json_encode(['success' => false, 'message' => implode(' ', $errors)]); exit; } // Destinataire $to = 'contact@la-maison-de-cecile.fr'; $subject = '=?UTF-8?B?' . base64_encode('[La Maison de Cécile] Message de ' . $nom) . '?='; // Corps du mail $body = "Vous avez reçu un nouveau message via le formulaire de contact.\n\n"; $body .= "Nom : {$nom}\n"; $body .= "Email : {$email}\n"; $body .= "Message:\n{$message}\n"; // En-têtes $headers = "From: =?UTF-8?B?" . base64_encode($nom) . "?= \r\n"; $headers .= "Reply-To: {$email}\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/plain; charset=UTF-8\r\n"; $headers .= "Content-Transfer-Encoding: base64\r\n"; $success = mail($to, $subject, base64_encode($body), $headers); if ($success) { echo json_encode(['success' => true, 'message' => 'Votre message a bien été envoyé. Nous vous répondrons sous 24h.']); } else { http_response_code(500); echo json_encode(['success' => false, 'message' => "Une erreur s'est produite. Veuillez réessayer ou nous contacter par téléphone."]); }