/** * Check mail folder for an email using subject. * * @param emailSubject Email subject * @param folder mail folder to check for an email * @param protocol protocol used to connect to the server * @return whether mail received or not * @throws MessagingException if we're unable to connect to the store */ private static boolean isMailReceivedBySubject(String emailSubject, String folder, String protocol, GreenMailUser user) throws MessagingException { boolean emailReceived = false; Folder mailFolder; Store store = getConnection(user, protocol); try { mailFolder = store.getFolder(folder); mailFolder.open(Folder.READ_WRITE); SearchTerm searchTerm = new AndTerm(new SubjectTerm(emailSubject), new BodyTerm(emailSubject)); Message[] messages = mailFolder.search(searchTerm); for (Message message : messages) { if (message.getSubject().contains(emailSubject)) { log.info("Found the Email with Subject : " + emailSubject); emailReceived = true; break; } } } finally { if (store != null) { store.close(); } } return emailReceived; }
private SearchTerm createFieldSearchTerm(String f) { switch (f.toLowerCase()) { case "from": return new FromStringTerm(matchingText); case "cc": return new RecipientStringTerm(Message.RecipientType.CC, matchingText); case "to": return new RecipientStringTerm(Message.RecipientType.TO, matchingText); case "body": return new BodyTerm(matchingText); case "subject": return new SubjectTerm(matchingText); default: return null; } }
/** * Check a particular email has received to a given email folder by email subject. * * @param emailSubject - Email emailSubject to find email is in inbox or not * @return - found the email or not * @throws ESBMailTransportIntegrationTestException - Is thrown if an error occurred while reading the emails */ public static boolean isMailReceivedBySubject(String emailSubject, String folder) throws ESBMailTransportIntegrationTestException { boolean emailReceived = false; Folder mailFolder; Store store = getConnection(); try { mailFolder = store.getFolder(folder); mailFolder.open(Folder.READ_WRITE); SearchTerm searchTerm = new AndTerm(new SubjectTerm(emailSubject), new BodyTerm(emailSubject)); Message[] messages = mailFolder.search(searchTerm); for (Message message : messages) { if (message.getSubject().contains(emailSubject)) { log.info("Found the email emailSubject : " + emailSubject); emailReceived = true; break; } } return emailReceived; } catch (MessagingException ex) { log.error("Error when getting mail count ", ex); throw new ESBMailTransportIntegrationTestException("Error when getting mail count ", ex); } finally { if (store != null) { try { store.close(); } catch (MessagingException e) { log.warn("Error when closing the store ", e); } } } }
/** * Search all messages with body containing the word bodyfilter * @param bodyfilter * @param notTerm negate condition */ public void setBodyTerm(String bodyfilter, boolean notTerm) { if (!Const.isEmpty(bodyfilter)) { if(notTerm) addSearchTerm(new NotTerm(new BodyTerm(bodyfilter))); else addSearchTerm(new BodyTerm(bodyfilter)); } }
/** * Search all messages with body containing the word bodyfilter * * @param bodyfilter * @param notTerm * negate condition */ public void setBodyTerm( String bodyfilter, boolean notTerm ) { if ( !Utils.isEmpty( bodyfilter ) ) { if ( notTerm ) { addSearchTerm( new NotTerm( new BodyTerm( bodyfilter ) ) ); } else { addSearchTerm( new BodyTerm( bodyfilter ) ); } } }
public SearchTermBuilder body(Op op, String pattern) { SearchTerm st = new BodyTerm(pattern); addTerm(op, st); return this; }