boa tarde,
estou com problemas para enviar email com conexao segura TLS. Ele simplesmente não envia. segue o script, se alguém puder me ajudar…desde já muito obrigado.
package br.inpe.dsa.mail;
import java.util.Properties;
public class mail {
  public boolean enviaEmail(String to, String from, String subject, String body) {
	  	boolean status=false;
        try {
              Properties props = new Properties();
              
              System.setProperty("javax.net.debug", "ssl,handshake");
              props.put("mail.smtp.host", "meuservidor");
             // props.put("mail.smtp.auth", "true"); 
              props.put("mail.smtp.starttls.enable", "true");
              props.put("mail.smtp.ssl.protocols", "SSLv3 TLSv1");
              //Autenticação                
              Session sessao = Session.getDefaultInstance (props, new Authenticator() {
                  protected PasswordAuthentication getPasswordAuthentication() {
                      return new PasswordAuthentication("user", "password");
                  }
              });                            	                 	  
              MimeMessage message = new MimeMessage(sessao);
              message.setFrom(new InternetAddress(from));
              Address toAddress = new InternetAddress(to);
              message.addRecipient(Message.RecipientType.TO, toAddress);
              message.setSubject(subject);
              message.setContent(body, "text/html");
              	
              Transport.send(message);
              status = true;
            
        } catch ( MessagingException msg) {
        	
        	  msg.printStackTrace();	
        	  status = false;
        	
        }
		return status;
  }
}
         
        
           
         
            
       
      
        
        
          Procure aqui no GUJ sobre como usar o JavaMail com o GMail, que usa TLS também. Não sei de cor quais são os parâmetros adequados.
         
        
           
         
            
       
      
        
        
          mesmo tentando fazer igual ao gmail, não deu!
         
        
           
         
            
       
      
        
        
          Qual é o stack trace? Pelo que imagino, o certificado do servidor de email não foi emitido por uma autoridade certificadora que está presente em no keystore cacerts.
         
        
           
         
            
       
      
        
          
          
            salmaox  
          
              
                Outubro 9, 2009, 10:07am
               
              #5 
           
         
        
          consegui usando
System.setProperty(“javax.net.debug”, “ssl,handshake”);
obrigado
         
        
           
         
            
       
      
        
        
          Eu utilizo as propriedades:
            props.put("mail.smtp.host", "smtp.gmail.com");
            props.put("mail.smtp.starttls.enable","true");
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.socketFactory.port", "465");
            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.socketFactory.fallback", "false");chamo a sessão usando autenticador (dentro de um bloco try):
                Authenticator auth = new SMTPAuthenticator();
                Session session = Session.getInstance(props, auth);e defino a classe:
    private class SMTPAuthenticator extends javax.mail.Authenticator {
        @Override
        public PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(user-gmail, password);
        }
    }onde:
user-gmail é o e-mail da conta gmail e password é a senha.
Geraldo.
         
        
           
         
            
       
      
        
        
          Esse aqui eu fiz a pouco e está funcionando na minha aplicação. Faça um teste com esse código alterando os valores do remetente, destinatário, seu usário e senha.
[code]import java.util.Properties;
import javax.mail.Authenticator;
public class Gmail {
public static void main(String args[])
    throws Exception {
	Properties prop = new Properties();
	prop.put("mail.smtp.host", "smtp.gmail.com");
	prop.put("mail.smtp.auth", "true");
	prop.put("mail.smtp.port", "465");
	prop.put("mail.smtp.starttls.enable", "true");
	prop.put("mail.smtp.socketFactory.port", "465");
	prop.put("mail.smtp.socketFactory.fallback", "false");
	prop.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
	Authenticator auth = new Authenticator() {
		@Override
		protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
			return new javax.mail.PasswordAuthentication("the-username-here", "the-passwd-here");
		}
	};
	Session session = Session.getInstance(prop, auth);
	MimeMessage message = new MimeMessage(session);
	message.setFrom(new InternetAddress("from-email@domain.com"));
	message.addRecipient(Message.RecipientType.TO, new InternetAddress("to-email@domain.com"));
	message.setSubject("the-subject");
	message.setContent("the body message", "text/plain");
	Transport.send(message);
}
}[/code]