Considerando o seguinte endereço de e-mail: [email removido]
Utilizando os validadores commons da apache, e o javax.mail
package br.com.empresa.teste;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import org.apache.commons.validator.routines.EmailValidator;
public class EmailTeste {
public static void main(String[] args) {
EmailTeste et = new EmailTeste();
et.testaEmail();
EmailTeste.isValidEmailAddress("[email removido]");
}
private void testaEmail() {
if (!EmailValidator.getInstance().isValid("[email removido]")) {
System.out.println("não passou");
}
}
public static boolean isValidEmailAddress(String email) {
boolean result = true;
try {
InternetAddress emailAddr = new InternetAddress(email);
emailAddr.validate();
} catch (AddressException ex) {
result = false;
}
return result;
}
}
De acordo com a wikipedia (http://en.wikipedia.org/wiki/Email_address#Local_part), não diz nada que um e-mail NÃO pode começar com underscore.
Isso é o problema de cada um seguir um padrão. Ou é bug mesmo.