Gibt es irgendwelche gute, kurze code-Beispiele, Lesen Sie einfach eine neue gmail-Nachricht?
Habe ich versucht, das schreiben einer app, die regelmäßig analysiert den Inhalt von gmail-Nachrichten. Ich habe durch die JavaMail-FAQ und ich habe mir eine Reihe von Beispielen in der JavaMail-download-Paket, aber waren nicht in der Lage, diese zu arbeiten. Der folgende code verursacht derzeit die folgenden gmail Fehler:
Host wird nicht aufgelöst: imaps.gmail.com:993
Habe ich auch schon versucht imap.gmail.com:143 aber erhalten:
Host wird nicht aufgelöst: imap.gmail.com:143
Jede Hilfe oder Beratung wäre sehr dankbar. GMailReader ist die Klasse die ich benutze, um zu versuchen und zurück gmail-imap-Nachrichten:
public class GMailReader extends javax.mail.Authenticator {
private String mailhost = "imaps.gmail.com";
private String user;
private String password;
private Session session;
public GMailReader(String user, String password) {
this.user = user;
this.password = password;
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "imaps");
props.setProperty("mail.imaps.host", mailhost);
props.put("mail.imaps.auth", "true");
props.put("mail.imaps.port", "993");
props.put("mail.imaps.socketFactory.port", "993");
props.put("mail.imaps.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.imaps.socketFactory.fallback", "false");
props.setProperty("mail.imaps.quitwait", "false");
session = Session.getDefaultInstance(props, this);
}
public synchronized Message[] readMail() throws Exception {
try {
Store store = session.getStore("imaps");
store.connect("imaps.gmail.com", user, password);
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message[] msgs = folder.getMessages(1, 10);
FetchProfile fp = new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
folder.fetch(msgs, fp);
return msgs;
} catch (Exception e) {
Log.e("readMail", e.getMessage(), e);
return null;
}
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich ein Beispiel hier das war hilfreich. Mein Fehler war der Einsatz von "E-mail.transport.Protokoll" statt "E-mail.store.protocol".
nachfolgend eine korrigierte version des
Bye
Sehe ich, dass die GmailReader Konzept sehr nützlich und gut gestaltet in übereinstimmung mit den GmailSender Beispiel hier gezeigt:
Senden von E-Mails in Android mit Hilfe von JavaMail-API ohne Verwendung der Standard - /built-in app
Aber keine Nachrichten, auf die Fehler gebeten, unten ? Und Umsetzung der proposition von JackN ?
Beste Grüße
SkN
Nachdem eine riesige Menge von Versuch, Irrtum und googeln , snakeman ' s edition von dieser Antwort, die praktikabel Beispiel brauchte ich für ein gmail-reader;
Aber andere sollten sich bewusst sein, (wenn mit späteren Versionen des Android SDK) der Manifest-permission Anforderungen und die Notwendigkeit der Verwendung von asyncTask zu bewegen potenziell lang andauernde Aufgaben von der Haupt-UI-thread), beide erwähnt in das SMTP-Beispiel
Sollte ich auch erwähnen, dass, wenn, wie mir, Sie wollen auch die Implementierung eines smtp-senden-Klasse, die ich gesehen habe, irgendwo eine Diskussion, was darauf hindeutet, dass Sitzung.getInstance verwendet werden sollte anstelle von session.getDefaultInstance.