I controlli vengono eseguiti correttamente.
Se provo senza controlli sui campi la mail parte, anche senza
<form ... onsubmit="return miaFunzione()">
visto che scrivo
<form action="formmail.php" ...>

formmail.php, come puoi vedere dal codice che ho postato prima, richiama la famosa classe phpmailer
require_once("class.phpmailer.php");

Quindi non credo che il problema sia da imputare alla mancanza di controlli inseriti in una function da invocare nel tag form. Soprattutto visto che i controlli funzionano...
Qualche altra idea ?