Verificar se e-mail é valido

Boas pessoal,

Preciso criar um metodo que valida se um email fornecido é valido ou não.

Tenho uma lista de clientes na base de dados e preciso de verificar quem tem o e-mail preenchido de forma correcta.

Dentro do campo email, costumo ter registos assim :

alguem@dominio.com (este esta correcto)
2º alguem@dominio (este não esta correcto)
alguemdominio.com (este não esta correcto)
4º alguem@.com (este não esta correcto)
alguem@dominio.com ; alguem2@dominio.com ; alguem3@dominio.com (estes estão correcto)
alguem@dominio.com ; alguem2@dominio ; alguem3@dominio.com (estes estão parcialmente correctos. Neste caso deve-se eliminar o email que nao esta correcto. Apenas o(s) que não esta(o) correcto(s))

Obrigado desde ja !

Sugiro que use expressões regulares. Procure pela classe Regex, da biblioteca java.util.

[quote=LuisClaudio]Boas pessoal,

Preciso criar um metodo que valida se um email fornecido é valido ou não.

Tenho uma lista de clientes na base de dados e preciso de verificar quem tem o e-mail preenchido de forma correcta.

Dentro do campo email, costumo ter registos assim :

alguem@dominio.com (este esta correcto)
2º alguem@dominio (este não esta correcto)
alguemdominio.com (este não esta correcto)
4º alguem@.com (este não esta correcto)
alguem@dominio.com ; alguem2@dominio.com ; alguem3@dominio.com (estes estão correcto)
alguem@dominio.com ; alguem2@dominio ; alguem3@dominio.com (estes estão parcialmente correctos. Neste caso deve-se eliminar o email que nao esta correcto. Apenas o(s) que não esta(o) correcto(s))

Obrigado desde ja !

[/quote]

web ou desktop ?
se for web tem o JQuery que faz bem legal, senão, olhe esse tópico:


mesmo sendo servlet, resolve

Com certeza a melhor maneira é com regexp.

Aqui tem um guia de consulta rápida

: http://guia-er.sourceforge.net/lista.html

Melhor maneira para a validação é REGEX.

bs

pode usar algo como

Pattern p = Pattern.compile(".+@.+\\.[a-z]+");
    Matcher m = p.matcher(email);

caso alguem precise.
neste caso validando apartir de um objeto,
c só precisa adaptar a sua necessidade

//alguns dos imports necessarios
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;

public class Valida {

public void validaEmail(FacesContext context, UIComponent component,
		Object objeto) throws ValidatorException {	
	String digitado = (String) objeto;
	Pattern p = Pattern.compile(".+@.+\\.[a-z]+");
	Matcher m = p.matcher(digitado);
	boolean matchFound = m.matches();

	if (!matchFound) {
		((UIInput) component).setValid(false); 
		FacesMessage message = new FacesMessage("Formato de e-mail inválido.");
		//adiciona mensagem no h:message do campo do objeto atual
		context.addMessage(component.getClientId(context), message);						
	}
}

}