shutdown84
Grünschnabel
Hallo zusammen!
Nach längerer Abstinenz von tutorials.de hat mich mein Weg nun wieder zurückgeführt
Starten möchte ich mein Comeback mit einer Frage zu JavaMail und IMAP - und dem seltsamen Verhalten, das ich hier bekomme:
Was ich eigentlich machen möchte: Eine Liste von Nachrichten in einem Ordner als gelöscht markieren und dann den Ordner beim Schließen expungen.
Geht aber nicht. Bzw. ging schon mal - nur nicht mehr. Ich kann mir nicht erklären, woran es liegt.
Ich bekomme den Ordner im Schreib-Modus geöffnet. Das erste Expunge und das Setzen einer auf ungelesen ist nur ein Test um genau das zu überprüfen. Und der Schreib-Zugriff besteht. Sobald allerdings das Flag für deleted gesetzt werden soll, bekomme ich vom Server die Meldung, dass nur Lesezugriff (Examine) bestünde.
Hier mal die Debug-Ausgaben der Session:
Die Pünktchen und die unterschiedlichen Befehlsnummern kommen daher, dass mehrere Debug-Ausgaben ineinander laufen.
Zum Hintergrund: Ich habe mich an mehreren Ordnern eines Postfachs als Listener angemeldet (MessageCountListener) und frage den Status über exists-Meldungen regelmäßig ab. (Kann eventuell das das Problem sein? Aber wie gesagt - es hat auch schon funktioniert).
Schon mal danke und viele grüße
shutdown
Nach längerer Abstinenz von tutorials.de hat mich mein Weg nun wieder zurückgeführt
Starten möchte ich mein Comeback mit einer Frage zu JavaMail und IMAP - und dem seltsamen Verhalten, das ich hier bekomme:
Code:
public void deleteMessages(Set<Message> toDelete, String inFolder) {
try {
Folder folder = store.getFolder(inFolder);
folder.open(Folder.READ_WRITE);
folder.expunge();
folder.getMessage(1).setFlag(Flag.SEEN, false);
for (Iterator iterator = toDelete.iterator(); iterator.hasNext();) {
Message message = (Message) iterator.next();
message.setFlag(Flag.DELETED, true);
}
folder.close(true); // close and expunge
} catch (MessagingException e) {
System.out.println("es gab probleme beim löschen****** " + e.getMessage());
e.printStackTrace(); }
}
Was ich eigentlich machen möchte: Eine Liste von Nachrichten in einem Ordner als gelöscht markieren und dann den Ordner beim Schließen expungen.
Geht aber nicht. Bzw. ging schon mal - nur nicht mehr. Ich kann mir nicht erklären, woran es liegt.
Ich bekomme den Ordner im Schreib-Modus geöffnet. Das erste Expunge und das Setzen einer auf ungelesen ist nur ein Test um genau das zu überprüfen. Und der Schreib-Zugriff besteht. Sobald allerdings das Flag für deleted gesetzt werden soll, bekomme ich vom Server die Meldung, dass nur Lesezugriff (Examine) bestünde.
Hier mal die Debug-Ausgaben der Session:
Code:
A3 SELECT INBOX
...
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent $Hidden $Media)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent $Hidden $Media)] limited
* 6 EXISTS
* 0 RECENT
* OK [UIDNEXT 59] predicted next UID
* OK [UIDVALIDITY 323751228] UIDs valid
* OK [UNSEEN 6] message 6 is first unseen
A3 OK [READ-WRITE] SELECT completed
A4 EXPUNGE
...
A4 OK completed
A5 STORE 1 -FLAGS (\Seen)
...
* 1 FETCH (FLAGS ())
A5 OK completed
A71 STORE 5 +FLAGS (\Deleted)
A71 NO mailbox is open for EXAMINE only
es gab probleme beim löschen****** A71 NO mailbox is open for EXAMINE only
Die Pünktchen und die unterschiedlichen Befehlsnummern kommen daher, dass mehrere Debug-Ausgaben ineinander laufen.
Zum Hintergrund: Ich habe mich an mehreren Ordnern eines Postfachs als Listener angemeldet (MessageCountListener) und frage den Status über exists-Meldungen regelmäßig ab. (Kann eventuell das das Problem sein? Aber wie gesagt - es hat auch schon funktioniert).
Schon mal danke und viele grüße
shutdown