Solucionaste el problema? Que la llamada venga desde js no tiene nada que ver con que el archivo PHP no funcione.
Funciona ok si lo llamas desde una url, asi?:
Esto del "manejo de errores" es algo que cuesta implementar al principio, pero vos deberias asegurarte de que el email en php se envia antes de publicar "Your contact form has been submitted!". Eso es posible, mediante un condicional PHP y un condicional js.