我想要将不同邮件服务的所有邮箱邮件,如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); } }
解决方法
尝试这个…
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();