Ich bekomme das in der Android-App nicht zum laufen. Sie bricht immer bei der Anweisung "store.connect(...)" ab. Als Java-Application funktioniert es. Habe schon diverse Beispiele probiert, alle mit dem gleichen Ergebnis.
Senden von Mails über JavaMail funktioniert vom Smartphone einwandfrei.
Java
...
private Session session;
private Store store;
Properties props = System.getProperties();
try {
session = Session.getDefaultInstance(props, null);
store = session.getStore("imaps");
store.connect("imap.gmail.com", "...user...", "...password...");
...
teilweise ergänzt um
Java
props.setProperty("mail.store.protocol", "imaps");
props.setProperty("mail.imaps.host", "imap.gmail.com");
props.setProperty("mail.imaps.port", "993");
bzw.
Java
properties.put(String.format("mail.%s.host", protocol), host);
properties.put(String.format("mail.%s.port", protocol), port);
properties.setProperty(String.format("mail.%s.socketFactory.class", protocol),"javax.net.ssl.SSLSocketFactory");
properties.setProperty(String.format("mail.%s.socketFactory.fallback", protocol),"false");
properties.setProperty(String.format("mail.%s.socketFactory.port", protocol),String.valueOf(port));
In der Java-Umgebung ist die javax.mail.jar und der Android-Umgebung sind dafür activation, additionnal und mail.jar installiert. In AndroidManifest ist <uses-permission android:name="android.permission.INTERNET"/> eingetragen.
Code
02-20 13:47:39.882: E/readMail(22273): Not connected
02-20 13:47:39.882: E/readMail(22273): java.lang.IllegalStateException: Not connected
02-20 13:47:39.882: E/readMail(22273): at com.sun.mail.imap.IMAPStore.checkConnected(IMAPStore.java:1493)
02-20 13:47:39.882: E/readMail(22273): at com.sun.mail.imap.IMAPStore.getFolder(IMAPStore.java:1324)
bzw.
Code
02-19 15:52:48.723: W/System.err(31147): javax.mail.MessagingException: Couldn't connect using "javax.net.ssl.SSLSocketFactory" socket factory to host, port: imap.googlemail.com, 993;
Ich entwickle unter eclipse und API19, habe aber auch andere Versionen und unterschiedliche Smartphones probiert. Jetzt habe ich keine Idee mehr. Bin dankbar für ein funktionsfähiges Beispiel.