Merge branch 'main' into lang_de
This commit is contained in:
@@ -23,6 +23,7 @@ public class ImapClient {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ListeningThread.class);
|
||||
private HashSet<MessageHandler> listeners = new HashSet<>();
|
||||
private boolean stopped = false;
|
||||
private Session session;
|
||||
|
||||
public ListeningThread addListener(MessageHandler messageHandler) {
|
||||
listeners.add(messageHandler);
|
||||
@@ -53,7 +54,7 @@ public class ImapClient {
|
||||
private void openInbox() throws MessagingException {
|
||||
LOG.debug("Verbinden und Einloggen…");
|
||||
Properties props = imapProps();
|
||||
Session session = Session.getInstance(props);
|
||||
session = Session.getInstance(props);
|
||||
Store store = session.getStore(Constants.IMAPS);
|
||||
store.connect(host,username,password);
|
||||
LOG.debug("Verbunden. Öffne {}:",folderName);
|
||||
@@ -75,6 +76,8 @@ public class ImapClient {
|
||||
for (Message message : inbox.getMessages()){
|
||||
if (message.isSet(Flags.Flag.SEEN)) continue;
|
||||
handle(message);
|
||||
Folder folder = message.getFolder();
|
||||
if (!folder.isOpen()) folder.open(Folder.READ_WRITE);
|
||||
message.setFlag(Flags.Flag.SEEN,true);
|
||||
}
|
||||
}
|
||||
@@ -158,6 +161,21 @@ public class ImapClient {
|
||||
return folderName;
|
||||
}
|
||||
|
||||
public ImapClient move(Message message, String destinationFolder) throws MessagingException {
|
||||
if (listeningThread == null || listeningThread.stopped) throw new IllegalStateException("IMAP client not connected!");
|
||||
var source = message.getFolder();
|
||||
if (!source.isOpen()) source.open(Folder.READ_WRITE);
|
||||
var messages = new Message[]{message};
|
||||
var store = source.getStore();
|
||||
var dest = store.getFolder(new URLName(destinationFolder));
|
||||
if (!dest.exists()) dest.create(Folder.HOLDS_MESSAGES);
|
||||
source.copyMessages(messages,dest);
|
||||
source.setFlags(messages, new Flags(Flags.Flag.DELETED), true);
|
||||
source.close(true);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public ImapClient start() {
|
||||
stop();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user