Te quedaría algo así:
Código PHP:
<?php
$mail='[email protected]';
$thank="gracias.html";
$error="error.html"; // página de error si no completó correctamente
foreach($_POST as $k=>$v) {
ValidarDatos($v);
}
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$mensaje = $_POST['mensaje'];
if(!$nombre||!$email||!$mensaje) {
header("Location: $error");
die();
}
$message = "nombre:".$nombre."\nemail:".$email."\nmensaje:".$mensaje;
if (mail($mail,"Formulario de Consulta",$message)) Header ("Location: $thank");
die();
function ValidarDatos($campo){
$badHeads = array("Content-Type:",
"MIME-Version:",
"Content-Transfer-Encoding:",
"Return-path:",
"Subject:",
"From:",
"Envelope-to:",
"To:",
"bcc:",
"cc:");
foreach($badHeads as $valor){
if(strpos(strtolower($campo), strtolower($valor)) !== false){
header("HTTP/1.0 403 Forbidden");
header("Status: 403 Forbidden");
exit;
}
}
}
?>
Poné atención en $message y que isset() por si solo no hace nada, tenés que ponerlo como una condición, o se podría reemplazar perfectamente por lo que puse allí.
Saludos.