Ho provato sia con la mail miamail@altervista.org che con miamail@gmail.com.
Inoltre non riesco a gestire la checkbox con la spunta, ho scritto una bozza di codice ma sono sicuro che è sbagliato

Codice PHP:
<?php session_start() ?>

<?php
 
//Controllo dati
$error"";
 
if(isset(
$_POST['nome']) and $_POST['nome'] != ""){//<- controllo nome
    
$nomestrip_tags($_POST['nome']);
}
elseif(isset(
$_POST['nome'])){
    
$error .= "Nome mancante.<br />";
}
 
if(isset(
$_POST['email']) and preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is'$_POST['email'])){//<- controlla se la mail è presente e se è in un formato valido
    
$mail $_POST['email'];
}
elseif(isset(
$_POST['email'])){
    
$error .= "Email mancante o non valida.<br />";
}
 
if(isset(
$_POST['messaggio']) and $_POST['messaggio'] != ""){//<- controllo messaggio
    
$messaggio strip_tags($_POST['messaggio']);
}
elseif(isset(
$_POST['messaggio'])){
    
$error .= "Inserire un messaggio.<br/>";
}

if(
document.forms[0].privacy.checked==false){ //<- controllo spunta
alert("Prego spuntare la casella");
return 
false;


$response file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=&response='.$_POST['g-recaptcha-response'].'&remoteip='.$_SERVER['REMOTE_ADDR']);
$responseDecoded  json_decode($response);
if ( 
$responseDecoded->success == false ) {
  echo 
'Busted!';
  exit();
}

//Invio mail
if(isset($nome,$mail,$oggetto,$messaggio)){
    
$destinatario "miamail@gmail.com";//<- ricorda di cambiarla!
    
$intestazione "From: ".$mail."\r\n";      
    
$messaggio .= "\n\nMittente: ".$nome."\nEmail: ".$mail."";      
     
    
mail($destinatario$oggetto$messaggio$intestazione );
     
    echo 
"<p class='success'>Messaggio inviato con successo!</p>";
}
else{
    echo 
"<p class='error'>".$error."</p>";
}

?>