Validar email do usuario

Boa tarde amigos,

Tenho uma classe que envia um email para o usuario informando que recebemos a duvida dele e que logo entraremos em contato, porem se a pessoa não digita o email correto não gera erro e a pessoa não recebe a confirmação… mediante a minha classe abaixo é possivel colocar uma validação ou se o email estiver errado dar aquele mensagem de igual acontece nos navegadores webmail?

segue o code:


package br.gov.sp.saobernardo.sehab.mail;

import java.io.UnsupportedEncodingException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import br.gov.sp.saobernardo.sehab.bean.FormularioFaqBean;
import br.gov.sp.saobernardo.sehab.util.ContextOracle;


public class JavaMailAppFeedback {

	public boolean FeedbackFaq(FormularioFaqBean bean) throws UnsupportedEncodingException, SQLException{				   
		
		  Properties props = new Properties();
          /** Parâmetros de conexão com servidor Hotmail */
          //props.put("mail.transport.protocol", "smtp");
          props.put("mail.smtp.host", "california.saobernardo.sp.gov.br");
          props.put("mail.smtp.socketFactory.port", "25");
          props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
         // props.setProperty ( "mail.smtp.ssl.trust" , "SmtpServer" );
          props.put("mail.smtp.starttls.enable", "false");
          props.put("mail.smtp.auth", "true");
          props.put("mail.smtp.port", "25");
          
          String sql = "select VALOR FROM TAB_PRMT WHERE NOME = 'senha'";
          
			Statement st = ContextOracle.getInstance().createStatement();
			ResultSet rs = st.executeQuery(sql);

			while (rs.next()) {
				final String path = rs.getString("VALOR");
  				
          Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
                           protected PasswordAuthentication getPasswordAuthentication() 
                           {
                          	
                          	 	return new PasswordAuthentication("suportesihisb@saobernardo.sp.gov.br", "" + path + "");
                           }
          
                      });
      /** Ativa Debug para sessão */
      session.setDebug(true);

      try {

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("suportesihisb@saobernardo.sp.gov.br")); //Remetente
         //   message.setContent(bean.getMensagem(),"text/plain; charset=ISO-8859-1");
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(bean.getEmail())); //Destinatário(s)
            message.setSubject(bean.getAssunto());//Assunto
            message.setText("Sua Duvida foi encaminhada para o responsavel, assim que possivel retornaremos");
            /**Método para enviar a mensagem criada*/
            Transport.send(message);
                   return true;  
            
       } catch (MessagingException e) {
            throw new RuntimeException(e);
      }
	          }
			return false;
	}
}
	
2 curtidas

Utiliza este método para validar o email.

public static boolean validar(String email) { boolean isEmailIdValid = false; if (email != null && email.length() > 0) { String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$"; Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(email); if (matcher.matches()) { isEmailIdValid = true; } } return isEmailIdValid; }

Se retornar verdadeiro você envia e da a mensagem de enviado se não tu dá a mensagem de erro.

2 curtidas

Utilize este método para verificação.

public static boolean validar(String email) { boolean isEmailIdValid = false; if (email != null && email.length() > 0) { String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$"; Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(email); if (matcher.matches()) { isEmailIdValid = true; } } return isEmailIdValid; }

Se for verdadeiro envia a mensagem de sucesso se não é porque o email é vazio ou falso então envia a de erro.

Utilize este método para validação do Email.

public static boolean validar(String email) { boolean isEmailIdValid = false; if (email != null && email.length() > 0) { String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$"; Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(email); if (matcher.matches()) { isEmailIdValid = true; } } return isEmailIdValid; }

Dai é só verificar se retorna falso ou verdadeiro e então exibir a mensagem que tu quer.

legal essa validação, mas imagine a seguinte situação:

o email da pessoal é chefefdp@mail.com.br
ai ele me faz o favor de digitar chefefd@mail.com.br

faltou um letra, me passar por aquele metodo vai dar true, pois não esta faltando nada no email caracteristico.
mas esta faltando uma letra.

isso que estou buscando.
Obrigado pela ajuda

Neste caso não tem como testar.

Você não sabe qual é o email real do usuário para validar.

Você consegue validar o mesmo através de teste smtp mas mesmo assim não irá resolver seu problema.

Aliás não é um problema de sistema e sim de usuário.

Se ele digitar errado vai ficar sem resposta.

desse jeito que vc esta qrendo
só se verificar no banco antes do envio do chamado