public MailMessage findMessage(final String accountReservationKey, final Predicate<MailMessage> condition,
			final long timeoutSeconds, final long sleepMillis) {
		MailAccount mailAccount = checkNotNull(mailAccountManager.lookupUsedMailAccountForCurrentThread(accountReservationKey),
				"No mail account reserved for current thread under key '%s'", accountReservationKey);
		return findMessage(mailAccount, condition, timeoutSeconds, sleepMillis, false);
	}
public MailMessage findMessage ( final String accountReservationKey , final Predicate < MailMessage > condition , final long timeoutSeconds , final long sleepMillis ) { MailAccount mailAccount = checkNotNull ( mailAccountManager . lookupUsedMailAccountForCurrentThread ( accountReservationKey ) , "No mail account reserved for current thread under key '%s'" , accountReservationKey ) ; return findMessage ( mailAccount , condition , timeoutSeconds , sleepMillis , false ) ; }
Tries to find a message for the mail account reserved under the specified
{@code accountReservationKey} applying the specified {@code condition} until it times out
using the specified {@code timeout} and and {@code sleepMillis}.

@param accountReservationKey
the key under which the account has been reserved
@param condition
the condition a message must meet
@param timeoutSeconds
the timeout in seconds
@param sleepMillis
the time in milliseconds to sleep between polls
@return the mail message