Zugriff auf IMAP GMail Konto scheitert.

jupa

Aktives Mitglied
Hallo, ich versuche mein Gmail Konto auszulesen. Bekomme aber immer eine javax.mail.MessagingException: Failed to load IMAP envelope. Kann mir einer bitte sagen was ich falsch mache.

Danke schonmal.

Folgende Sourcen verwende ich.

Properties properties = null;
private Session session = null;
private Store store = null;
private Folder inbox = null;
private String userName = // provide user name
private String password = // provide password

public ReadMailSample() {

}

public void readMails() {
properties = new Properties();
properties.setProperty("mail.host", "imap.gmail.com");
properties.setProperty("mail.port", "995");
properties.setProperty("mail.transport.protocol", "imaps");
session = Session.getInstance(properties,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password);
}
});
try {
store = session.getStore("imaps");
store.connect();
inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
Message messages[] = inbox.search(new FlagTerm(
new Flags(Flag.SEEN), false));
;
System.out.println("Number of mails = " + messages.length);
for (int i = 0; i < messages.length; i++) {
Message message = messages;
Address[] from = message.getFrom();
System.out.println("-------------------------------");
System.out.println("Date : " + message.getSentDate());
System.out.println("From : " + from[0]);
System.out.println("Subject: " + message.getSubject());
System.out.println("Content :");
processMessageBody(message);
System.out.println("--------------------------------");

}
inbox.close(true);
store.close();
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}

public void processMessageBody(Message message) {
try {

Object content = message.getContent();
// check for string
// then check for multipart
if (content instanceof String) {
System.out.println(content);
} else if (content instanceof Multipart) {
Multipart multiPart = (Multipart) content;
procesMultiPart(multiPart);
} else if (content instanceof InputStream) {
InputStream inStream = (InputStream) content;
int ch;

while ((ch = inStream.read()) != -1)
{
System.out.write(ch);
}
}

} catch (IOException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}

public void procesMultiPart(Multipart content) {

try {
int multiPartCount = content.getCount();
for (int i = 0; i < multiPartCount; i++) {
BodyPart bodyPart = content.getBodyPart(i);
Object o;

o = bodyPart.getContent();
if (o instanceof String) {
System.out.println(o);
} else if (o instanceof Multipart) {
procesMultiPart((Multipart) o);
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}

}
 
Dick in rot steht über dem Editor, dass man
Java:
 Tags nutzen soll...
Und laut Google deutet die Fehlermeldung auf einen defekten Server hin, wobei das bei GMail schon seltsam wäre. 
Ich würde (ohne wirklich Ahnung davon zu haben) bei dem folder.open() mal eine andere Zugriffsart ausprobieren. Ist zwar irgendwie abwegig aber man weiß ja nie :P
 
auch wenn wie gesagt eigentlich folgendes gilt

Java™ Quelltext ist bitte in
Java:
[/b]-Tags zu schreiben: [c][noparse][code=Java]hier Java Code einfügen
[/noparse][/c]


ist der fehler sehr offensichtlich ...

soviel als kleiner hint : es ist nicht ein fehler sondern 2 fehler die in kombination entsprechende exception auslösen ... mehr verrate ich aber nicht
 

Neue Themen


Zurück
Oben