Lo que aparenta ser una pregunta simple resulta ser un quebradero de cabeza.
Principalmente los caracteres permitidos son los de la tabla ASCII del inglés (no están todos los que en teoría deberían estar):
! # $ % & ' * + - . / 0 1 2 3 4 5 6 7 8 9 = ?
@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _
` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
Pero algunos de ellos, en caso de utilizarse, se han de usar con restricciones (por ejemplo las " o el . )
En
http://en.wikipedia.org/wiki/E-mail_..._specification hay información básica sobre el formato correcto de una dirección de email.
Pero si intentas seguir la norma
RFC-2822 (
traducción al español) y tienes en cuenta tanto la primera parte de la dirección de correo como la parte del dominio, llevar a la práctica la teoría resulta ser impracticable.
Por suerte hay resúmenes que pueden aclarar algunos aspectos de la especificación. Uno de ellos, altamente recomendable, es
Characters in the local part of a mail address.
Algunos ejemplos de direcciones válidas y ejemplos de expresiones regulares con explicaciones:
Anatomy of a Mail Address http://www.regular-expressions.info/email.html Is Valid Internet Email Address
Quizá este tostón no es la respuesta que uno esperaba, además hay que tener en cuenta que muchas de las estructuraciones de email que según la especificación son válidas han quedado en desuso o son los propios servidores de mail los que limitan el tipo de dirección para considerarla válida.