<?
$email = "xxx@xxx.it"; //Specificare un indirizzo email valido

if($nome == "") echo "<script type=\"text/javascript\">alert(\"I campi contrassegnati sono obbligatori!\"); history.go(-1)</script>";
if($mail == "") echo "<script type=\"text/javascript\">alert(\"I campi contrassegnati sono obbligatori!\"); history.go(-1)</script>";
elseif($messaggio == "") echo "<script type=\"text/javascript\">alert(\I campi contrassegnati sono obbligatori!\"); history.go(-1)</script>";

elseif(mail($email, "Mail dal sito, mittente: $nome,$mail", $messaggio))
header("Location: http://www.xxx.it/grazie.htm"); else echo "Si Ë verificato un errore durante l'invio.";
?>

Ho risolto parzialmente inserendo una stringa di javascript, solo che c'è qualcosa che non va nel codice php perchè anche lasciando incompleti alcuni campi accadono cose strane.
1- invia comunque anche se in maniera incompleta.
2- si apre una pagina vuota.

Potete analizzarlo voi che ne capite?
Grazie, a presto.