11

我想将 gmail、hotmail、rediffmail 等不同邮件服务的所有收件箱邮件放入我的应用程序中。最初我尝试使用 Imap 获取 gmail 邮件。但我得到一个套接字异常。这是我尝试过的代码。请帮我。

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", "aravelliramesh35@gmail.com", "pswd");
    }
  //}catch (NoSuchProviderException e) {
  //   e.printStackTrace();
  //   System.exit(1);
  //} 
    catch (MessagingException e) {
        e.printStackTrace();
        System.exit(2);
    }
}
4

1 回答 1

19

Try this...

 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();
于 2012-06-07T04:15:16.520 回答