/** * Retrieve all messages from server * * @throws KettleException */ public void retrieveMessages() throws KettleException { try { // search term? if ( this.searchTerm != null ) { this.messages = this.folder.search( this.searchTerm ); } else { this.messages = this.folder.getMessages(); } } catch ( Exception e ) { this.messages = null; throw new KettleException( BaseMessages.getString( PKG, "MailConnection.Error.RetrieveMessages", getFolderName() ), e ); } }
messages = folder.getMessages(); } else { messages = folder.search(filter.getSearchTerm());
/** * Search this Folder for messages matching the specified * search criterion. Returns an array containing the matching * messages . Returns an empty array if no matches were found. <p> * * This implementation invokes * <code>search(term, getMessages())</code>, to apply the search * over all the messages in this folder. Providers that can implement * server-side searching might want to override this method to provide * a more efficient implementation. * * @param term the search criterion * @return array of matching messages * @exception javax.mail.search.SearchException if the search * term is too complex for the implementation to handle. * @exception FolderNotFoundException if this folder does * not exist. * @exception IllegalStateException if this folder is not opened. * @exception MessagingException for other failures * @see javax.mail.search.SearchTerm */ public Message[] search(SearchTerm term) throws MessagingException { return search(term, getMessages()); }
/** * Search this Folder for messages matching the specified * search criterion. Returns an array containing the matching * messages . Returns an empty array if no matches were found. <p> * * This implementation invokes * <code>search(term, getMessages())</code>, to apply the search * over all the messages in this folder. Providers that can implement * server-side searching might want to override this method to provide * a more efficient implementation. * * @param term the search criterion * @return array of matching messages * @exception javax.mail.search.SearchException if the search * term is too complex for the implementation to handle. * @exception FolderNotFoundException if this folder does * not exist. * @exception IllegalStateException if this folder is not opened. * @exception MessagingException for other failures * @see javax.mail.search.SearchTerm */ public Message[] search(SearchTerm term) throws MessagingException { return search(term, getMessages()); }
/** * Retrieves new messages from this receiver's folder. This implementation * creates a {@link SearchTerm} that searches for all messages in the * folder that are {@link javax.mail.Flags.Flag#RECENT RECENT}, not * {@link javax.mail.Flags.Flag#ANSWERED ANSWERED}, and not * {@link javax.mail.Flags.Flag#DELETED DELETED}. The search term is used * to {@link Folder#search(SearchTerm) search} for new messages. * @return the new messages * @throws MessagingException in case of JavaMail errors */ @Override protected Message[] searchForNewMessages() throws MessagingException { Folder folderToUse = getFolder(); Flags supportedFlags = folderToUse.getPermanentFlags(); SearchTerm searchTerm = compileSearchTerms(supportedFlags); if (folderToUse.isOpen()) { return nullSafeMessages(searchTerm != null ? folderToUse.search(searchTerm) : folderToUse.getMessages()); } throw new MessagingException("Folder is closed"); }
private Folder testAttachmentsGuts(final ImapMailReceiver receiver) throws MessagingException, IOException { Store store = mock(Store.class); Folder folder = mock(Folder.class); given(folder.exists()).willReturn(true); given(folder.isOpen()).willReturn(true); Message message = new MimeMessage(null, new ClassPathResource("test.mail").getInputStream()); given(folder.search(Mockito.any())).willReturn(new Message[] { message }); given(store.getFolder(Mockito.any(URLName.class))).willReturn(folder); given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER)); DirectFieldAccessor df = new DirectFieldAccessor(receiver); df.setPropertyValue("store", store); receiver.setBeanFactory(mock(BeanFactory.class)); receiver.afterPropertiesSet(); return folder; }
given(folder.exists()).willReturn(true); given(folder.isOpen()).willReturn(true); given(folder.search(Mockito.any())).willReturn(new Message[] { }); given(store.getFolder(Mockito.any(URLName.class))).willReturn(folder); given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
Folder inbox = store.getFolder("inbox"); inbox.open(Folder.READ_ONLY); // search for all "unseen" messages Flags seen = new Flags(Flags.Flag.SEEN); FlagTerm unseenFlagTerm = new FlagTerm(seen, false); Message messages[] = inbox.search(unseenFlagTerm); if (messages.length == 0) System.out.println("No messages found.");
protected Message[] getMessagesByIds(Folder folder, List<String> messageIds) throws MessagingException { List<MessageIDTerm> idTerms = messageIds.stream() .map(MessageIDTerm::new) .collect(Collectors.toList()); OrTerm searchTerm = new OrTerm(idTerms.toArray(new MessageIDTerm[idTerms.size()])); return folder.search(searchTerm); }
Folder folderInbox = store.getFolder("INBOX"); folderInbox.open(Folder.READ_WRITE); // fetches new messages from server with specific sender SearchTerm sender1 = new FromTerm(new InternetAddress("alert@shine.com")); //fetch only unread messages Flags seen = new Flags(Flags.Flag.SEEN); FlagTerm unseenFlagTerm = new FlagTerm(seen, false); //searching sender //combire search tersm SearchTerm searchTerm = new AndTerm(unseenFlagTerm,sender1); Message[] arrayMessages = folderInbox.search(searchTerm);
Folder inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); SearchTerm sender = new FromTerm(new InternetAddress("from@example.com")); Message[] messages = inbox.search(sender); for (int i = 1; i < messages.length; i++) { read_message(messages[i]); }
@Override public JavaxMailMessage[] search(SearchTerm term, Message[] msgs) throws RuntimeMessagingException { try { return decorateMessageArray(delegate.search(term, msgs)); } catch (MessagingException e) { throw new RuntimeMessagingException(e); } }
@Override public JavaxMailMessage[] search(SearchTerm term) throws RuntimeMessagingException { try { return decorateMessageArray(delegate.search(term)); } catch (MessagingException e) { throw new RuntimeMessagingException(e); } }
@Override public Object invokeTarget() throws Exception { // poll only messages which are not deleted Message[] messages = target.search(new FlagTerm(new Flags(Flag.DELETED), false)); return Arrays.asList(messages); }
Properties props = System.getProperties(); props.setProperty("mail.store.protocol", "imaps"); try { Session session = Session.getDefaultInstance(props, null); Store store = session.getStore("imaps"); store.connect("myserver.com", "user", "pass"); Folder inbox = store.getFolder("Inbox"); inbox.open(Folder.READ_ONLY); FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false); Message messages[] = inbox.search(ft); }
private Message[] getMessagesToProcess() throws MessagingException { //TODO: improve this logic to get only previously unprocessed unread mails. SearchTerm unseenBefore = new FlagTerm(new Flags(Flags.Flag.SEEN), false); log.info("[EJM]: Retrieving unseen emails"); return emailFolder.search(unseenBefore); }