E' chiaro che ti da quel messaggio!! I campi $name e $msg sono sempre vuoti!!if(empty($name) || empty($email) || empty($subject) || empty($msg)) {
echo "<h3>Il messaggio non è stato inviato</h3>
Compila tutti i campi obbligatori!</p>";
}
nello script invia php devi cambiare $_POST['name'] con $_POST['nome'], $_POST['msg'] con $_POST['messaggio'],poi $subject richiede un'atro campo nel form con nome=subject......
togli l'include della pagina invia.php nella pagina contenente il form