 function emailCheck (emailStr) {
    var checkTLD=1;
    var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
    var emailPat=/^(.+)@(.+)$/;
    var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
    var validChars="\[^\\s" + specialChars + "\]";
    var quotedUser="(\"[^\"]*\")";
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom=validChars + '+';
    var word="(" + atom + "|" + quotedUser + ")";
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
    var matchArray=emailStr.match(emailPat);
    if (matchArray==null) {
    alert("Tu dirección de correo no aparece o es incorrecta (comprueba @ y .'s)");
    return false;
    }
    var user=matchArray[1];
    var domain=matchArray[2];
    for (i=0; i<user.length; i++) {
    if (user.charCodeAt(i)>127) {
    alert("Tu dirección de correo contiene caracteres no validos.");
    return false;
       }
    }
    for (i=0; i<domain.length; i++) {
    if (domain.charCodeAt(i)>127) {
    alert("El dominio de la dirección introducida contiene caracteres no validos.");
    return false;
       }
    }
    if (user.match(userPat)==null) {
    alert("La dirección de correo parece incorrecta, por favor compruebalo.");
    return false;
    }
    var IPArray=domain.match(ipDomainPat);
    if (IPArray!=null) {
    for (var i=1;i<=4;i++) {
    if (IPArray[i]>255) {
    alert("La dirección IP de destino no es correcta!");
    return false;
       }
    }
    return true;
    }
    var atomPat=new RegExp("^" + atom + "$");
    var domArr=domain.split(".");
    var len=domArr.length;
    for (i=0;i<len;i++) {
    if (domArr[i].search(atomPat)==-1) {
    alert("La dirección de correo parece incorrecta, por favor compruebalo, incluyendo el uso incorrecto de signos de puntuación, comas , o puntos [.] al final de la dirección.");
    return false;
       }
    }
    if (checkTLD && domArr[domArr.length-1].length!=2 && 
    domArr[domArr.length-1].search(knownDomsPat)==-1) {
    alert("Tu dirección de correo debe terminar en un dominio o dos letras " + "país.");
    return false;
    }
    if (len<2) {
    alert("Falta el nombre del host en tu dirección de correo - compruebalo. O debes de haber añadido un espacio en blanco al final de la dirección - corrije el error e intentalo de nuevo.");
    return false;
    }
    return true;
    }
 
Edita los los ficheros var.js, send.php y email.php para cambiar las direcciones de correo por las tuyas propias y personalizar los mensajes de error.

Puedes ver un ejemplo del formulario resultante en esta dirección. Ten en cuenta, que aunque lo he dejado funcional, los mensajes solo se recibiran en la dirección de correo que pongas como remite, si deseas ponerte en contacto conmigo, usa el formulario que he habilitado en el sitio para tal efecto.

update: para que el formulario funcione hay que tener la opcion “register_globals” habilitada en el php.ini

Enlaces Relacionados
Free PHP email feedback form code, with wide range of features. 
kirupa.com - PHP Contact Form 
And all that Malarkey [Stylish, accessible forms] 
The Man in Blue, Styling Form Widgets 
Picment.com, Fun with forms 
del.icio.us stumble Digg It! Furl ma.gnolia Newsvine 
pdf print RSS 