Lo primero que te recomiendo hacer es consultar el artículo sobre Validación de formularios con Javascript, pues te va a ofrecer mucha información que te resultará útil para saber cómo resolver tu problema. Además, hay todo un manual que explica cómo hacer el tratamiento de formularios, que te dará un conocimiento más detallado sobre muchas técnicas que te permitirán hacer las validaciones más precisas y controlar las acciones del usuario.
Ahora ya para responder tu pregunta:
Si solo utilizas Javascript para validar datos obligatorios en un formulario web en el lado del cliente, puede ser que ese cliente tenga deshabilitada la opción de utilizar JAvascript, por lo que tus validaciones del lado del cliente no servirán para nada.
Yo propongo, que además de utilizar ese Javascript (digo además, eh?, no estoy diciendo de eliminar ese javascript), se haga validación tambien en el lado de servidor. Al estar enviando un mail imagino que estaras utlizando algun lenguaje de programacion en el servidor, php, ASP, JSP, etc, correcto?
Pues, antes de enviar el mail, se deberia comprobar tambien con el lenguaje utilizado que los campos que le llegan al servidor no están vacios. Si la validacion es correcta pues se envia el mail,en caso contrario se envia un mensaje al cliente advirtiendo de la situacion y no se envia el mail hasta que los datos son correctos.
Insisto, esto seria añadiendolo en el servidor aparte de la comprobacion del javascript en el cliente.