La forma más rápida de tener un formulario es usar uno ya creado por ejemplo
este formulario con validación php y ajax, con html5:
https://cdn.tutsplus.com/net/uploads...tyled_form.jpg
Lo puedes descargar desde:
http://cdn.tutsplus.com/net/uploads/...ource_code.zip
Sobre tu código php, puedes habilitar mostrar errores en tu servidor web apache or nginx, de esta forma puedes encontrar el error y solucionarlo.
Otro detalle, algunos proveedores de hosting bloquean el protocolo smtp puerto 25, el cual se usa para recibir y enviar mensajes, prueba este simple script.
<?php
mail('
[email protected]', 'test email', 'ejemplo de formulario');
?>
si recibes el correo es que funciona, en caso de que sea lo contrario, el problema no es tu código es el proveedor de hosting.