Javamail + SSL

0 respostas
J

Salve Pessoal,

Estou tentando realizar uma conexao a uma conta pop3 usando a API Javamail. O Servidor so aceita conexoes via SSL na porta 995. Tentei usar como dica as informacoes de http://www.javaworld.com/javatips/jw-javatip115.html, mas obtenho sempre o mesmo erro. Ja quebrei a cabeca e nao consigo descubrir o que seja. Alguem pode ajudar? Estou pasasndo abaixo o codigo e o erro.

Obrigado,

Celso

===[codigo]=================

import java.security.Security;

import java.util.Properties;

import javax.mail.*;

import java.io.*;

/**

  • @author freire

  • TODO To change the template for this generated type comment go to

  • Window - Preferences - Java - Code Style - Code Templates
    
    */
    
    public class Login {
    
    public static void main (String args[]) throws Exception {
    
    new DummySSLSocketFactory();
     
     String host = "host";
     String username = "user";
     String password = "password";
     
     // register JSSE providers dynamically
     Security.addProvider( new com.sun.net.ssl.internal.ssl.Provider());
     Security.setProperty( "ssl.SocketFactory.provider", "DummySSLSocketFactory");
    
     // replace a socket factory
     final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
    
     // Get a Properties object
     Properties props = System.getProperties();
     props.setProperty( "mail.pop3.socketFactory.class", SSL_FACTORY);
     props.setProperty( "mail.pop3.socketFactory.fallback", "false");
     // change the default port number for POP3 provider
     props.setProperty( "mail.pop3.port", "995");
     props.setProperty( "mail.pop3.socketFactory.port", "995");
    
     // Get session
     Session session = Session.getInstance(props);
     
     URLName urln = new URLName("pop3",host,995,null,username,password);
    
     Store store = session.getStore(urln);
     //store.connect();
    
     
     try{
     	store.connect();
     	System.out.println("Funcionou!!!");
     }
     catch(MessagingException me){
     	System.err.println("Deu erro na conexão!!!");
     	System.err.println(me.getMessage());
     }
     
    
     // Get folder
     Folder folder = store.getFolder("INBOX");
    
     // Open read-only
     folder.open(Folder.READ_ONLY);
    
     BufferedReader reader = new BufferedReader (
       new InputStreamReader(System.in));
    
     // Get directory
     Message message[] = folder.getMessages();
    
     for (int i=0, n=message.length; i<n; i++) {
    
        // Display from field and subject
        System.out.println(i + ": " + message[i].getFrom()[0] 
          + "\t" + message[i].getSubject());
    
       System.out.println("Do you want to read message? [YES to read/QUIT to end]");
       String line = reader.readLine();
       if ("YES".equals(line)) {
    
         // Display message content
         System.out.println(message[i].getContent());
    
       } else if ("QUIT".equals(line)) {
         break;
       }
     }
    
     // Close connection 
     folder.close(false);
     store.close();
    
    }
    
    }
    
    ================================
    

===[erro]=========================
DummySocketFactory instantiated
Deu erro na conexão!!!
Connect failed;
nested exception is:
java.net.SocketException: DummySSLSocketFactory
javax.mail.MessagingException: Not connected
at com.sun.mail.pop3.POP3Store.checkConnected(POP3Store.java:238)
at com.sun.mail.pop3.POP3Store.getFolder(POP3Store.java:220)
at unesp.feg.dee.Login.main(Login.java:65)
Exception in thread “main”

Criado 4 de novembro de 2004
Respostas 0
Participantes 1