movisoft ..
Si revisas la documentación oficial de mail() (función) en el manual de php:
www.php.net/mail
Veras que mail() al ejecutarlo devuelve un "TRUE" si consiguió enviar el e-mail (mejor dicho si lo "entregó" al MTA que haga en envio en sí del e-mail (al servidor de mail que corra y esté configurado PHP para usar)) .. si no pudo entregar el e-mail .. dará un FALSE .. Por eso si lo usas en un condicional (IF) puedes hacer lo que puse; si se envia correctamente .. se manda a una página de "grácias" .. y si no se puedo enviar se manda a una página de "error" donde mostraras tu mensajito acorde a lo que corresponda.
Y .. lo que comentaba sobre el código de drcyber .. lo puedes probar u mismo movisoft .. Recarga la página enviar.php donde te dice "Grácias .. sus datos han sido enviados .. ba blabla" .. y .. chekea tu e-mail .. Observa que se envian tantos e-mail iguales como veces recargaste la página ... Y eso sucede por lo que expliqué anteriormente, dando la solución a este problema como también mencioné.
Un saludo,