las validaciones de fechas es siempre mejor
hacerlas en el servidor, en todo caso, puedes usar javascript para aligerar las cosas, existen calendarios prefabricados con jQuery UI, jscalendar, entre otros, que permiten bloquear por rango o determinadas fechas.
en cuanto a mail,
¿no te parece mejor buscar su documentación?:
http://php.net/manual/es/function.mail.php, además existen librerías como phpmailer, swift mailer que facilitan la tarea de enviar mails