/** * Receives the emails as specified by the builder. */ public ReceivedEmail[] get() { if (fromFolder != null) { session.useFolder(fromFolder); } return session.receiveMessages(filter, flagsToSet, flagsToUnset, envelopeOnly, messages -> { if (targetFolder != null) { try { session.folder.copyMessages(messages, session.getFolder(targetFolder)); } catch (MessagingException e) { throw new MailException("Copying messages failed"); } } }); }
/** * Move messages to a folder. You must call setDestinationFolder before calling this method * * @throws KettleException */ public void moveMessages() throws KettleException { try { this.folder.copyMessages( this.messages, this.destinationIMAPFolder ); deleteMessages( false ); setMovedMessagesCounter(); } catch ( Exception e ) { throw new KettleException( BaseMessages.getString( PKG, "MailConnection.Error.MovingMessages", this.destinationIMAPFolder.getName() ), e ); } }
/** * Move current message to a target folder. (IMAP) You must call setDestinationFolder before calling this method * * @throws KettleException */ public void moveMessage() throws KettleException { try { // move all messages this.folder.copyMessages( new Message[] { this.message }, this.destinationIMAPFolder ); updatedMovedMessagesCounter(); // Make sure to delete messages deleteMessage(); } catch ( Exception e ) { throw new KettleException( BaseMessages.getString( PKG, "MailConnection.Error.MovingMessage", "" + getMessage().getMessageNumber(), this.destinationIMAPFolder.getName() ), e ); } }
@Override public void copyMessages(Message[] msgs, Folder folder) throws RuntimeMessagingException { try { delegate.copyMessages(msgs, folder); } catch (MessagingException e) { throw new RuntimeMessagingException(e); } }
"Move between stores not supported"); else super.copyMessages(msgs, folder);
"Move between stores not supported"); else super.copyMessages(msgs, folder);
protected void copyMessages(String destFolderName, Message[] messages, boolean deleteSourceMessages) { connect(); try (Folder destFolder = findFolder(destFolderName)) { if (destFolder != null) { Map<Folder, Set<Message>> messagesBySourceFolder = groupMessagesBySourceFolder(messages); for (Entry<Folder, Set<Message>> entry : messagesBySourceFolder.entrySet()) { @SuppressWarnings("resource") // reason: message is an input parameter of this method final Folder sourceFolder = entry.getKey(); final Set<Message> messageSet = entry.getValue(); Message[] messagesForSourceFolder = messageSet.toArray(new Message[messageSet.size()]); // use copyMessages instead of appendMessages because this can be optimized by the mail-server sourceFolder.copyMessages(messagesForSourceFolder, destFolder); if (deleteSourceMessages) { deleteMessagesPermanently(messagesForSourceFolder); } } } } catch (MessagingException e) { throw new ProcessingException(e.getMessage(), e); } }
/** * Receives the emails as specified by the builder. */ public ReceivedEmail[] get() { if (fromFolder != null) { session.useFolder(fromFolder); } return session.receiveMessages(filter, flagsToSet, flagsToUnset, envelopeOnly, messages -> { if (targetFolder != null) { try { session.folder.copyMessages(messages, session.getFolder(targetFolder)); } catch (MessagingException e) { throw new MailException("Copying messages failed"); } } }); }
dFolder.create(Folder.HOLDS_MESSAGES); folder.copyMessages(new Message[]{message}, dFolder);
dFolder.create(Folder.HOLDS_MESSAGES); folder.copyMessages(new Message[]{message}, dFolder);
folder.copyMessages(markedMsgList.toArray(new Message[0]), trash);
super.copyMessages(messages, folder); return;
Session mailSession = Session.getInstance(props); Store mailStore = mailSession.getStore("imap"); mailStore.connect(<host>, <user>, <passwd>); Folder dFolder = mailStore.getDefaultFolder(); Folder inbox = dFolder.getFolder(<connectFolder=INBOX?>); inbox.open(Folder.READ_WRITE); // Open destination folder, create if reqd Folder destfolder = mailStore.getFolder(<destination folder>); if (!destfolder.exists()) destfolder.create(Folder.HOLDS_MESSAGES); Message []inMessages = inbox.getMessages(); if (inMessages .length != 0) { inbox.copyMessages(inMessages , destfolder); for (int i=0; i< inMessages.length; i++) { // Custom Processor which readsMessages and performs some action. // getProcessor().readMessage(inMessages[i]); inMessages[i].setFlag(Flags.Flag.DELETED, true); } }
super.copyMessages(msgs, folder);
super.copyMessages(msgs, folder);
"Move between stores not supported"); else super.copyMessages(msgs, folder);
"Move between stores not supported"); else super.copyMessages(msgs, folder);
"Move between stores not supported"); else super.copyMessages(msgs, folder);
"Move between stores not supported"); else super.copyMessages(msgs, folder);
fromFolder.copyMessages(new Message[]{message}, toFolder);