Sin analizar todo tu código, te diría que para la validación de email utilices algo mas avanzado, si dispones de la extensión FILTER de php podes usarla
http://www.php.net/manual/en/filter....validation.php
si no con expresiones regulares
## advertir que 2,4 --> para aceptar nuevos dominios (.info, etc)
$control_mail="/^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$/i";
if(!preg_match($control_mail,$email)){
$mensaje_error = "La <b>sintáxis de email</b> no es válida<br />\n";
}
Saludos