2012-06-07 15 views
9

Quiero obtener todos los correos de la bandeja de entrada de diferentes servicios de correo como gmail, hotmail, rediffmail, etc. en mi aplicación. Inicialmente traté de obtener correos de Gmail usando Imap. Pero estoy obteniendo una excepción de socket. Aquí está el código que probé. Por favor, ayúdame.Cómo obtener correos de Gmail programáticamente en android

public void getMails(View V){ 
Properties props = System.getProperties(); 
props.setProperty("mail.store.protocol", "imaps"); 
props.setProperty("mail.imap.port", "993"); 

props.setProperty("mail.imap.socketFactory.class", .ssl.SSLSocketFactory"); 
props.setProperty("mail.imap.socketFactory.fallback", "false"); 
    try { 
     Session session = Session.getDefaultInstance(props, null); 
     Store store = session.getStore("imaps"); 
     store.connect("imap.gmail.com", "[email protected]", "pswd"); 
    } 
    //}catch (NoSuchProviderException e) { 
    // e.printStackTrace(); 
    // System.exit(1); 
    //} 
    catch (MessagingException e) { 
     e.printStackTrace(); 
     System.exit(2); 
    } 
} 

Respuesta

18

Prueba esto ...

Properties props = new Properties(); 
    //IMAPS protocol 
    props.setProperty(“mail.store.protocol”, “imaps”); 
    //Set host address 
    props.setProperty(“mail.imaps.host”, imaps.gmail.com); 
    //Set specified port 
    props.setProperty(“mail.imaps.port”, “993″); 
    //Using SSL 
    props.setProperty(“mail.imaps.socketFactory.class”, “javax.net.ssl.SSLSocketFactory”); 
    props.setProperty(“mail.imaps.socketFactory.fallback”, “false”); 
    //Setting IMAP session 
    Session imapSession = Session.getInstance(props); 

Store store = imapSession.getStore(“imaps”); 
//Connect to server by sending username and password. 
//Example mailServer = imap.gmail.com, username = abc, password = abc 
store.connect(mailServer, account.username, account.password); 
//Get all mails in Inbox Forlder 
inbox = store.getFolder(“Inbox”); 
inbox.open(Folder.READ_ONLY); 
//Return result to array of message 
Message[] result = inbox.getMessages(); 
+4

u puede descargar todo el código frm .... https: //www.box.com/shared/k2vzvynl7x aquí –

+1

gracias que está trabajando. –

+0

si mi respuesta te ayuda a resolver tu problema ... entonces márcalo como respuesta para que otros puedan referirlo ... –

Cuestiones relacionadas