Package com.icegreen.greenmail.util
Class GreenMail
- java.lang.Object
-
- com.icegreen.greenmail.util.GreenMail
-
- Direct Known Subclasses:
Servers
public class GreenMail extends java.lang.Object
- Since:
- Jan 28, 2006
- Version:
- $Id: $
- Author:
- Wael Chatila
-
-
Constructor Summary
Constructors Constructor Description GreenMail()
Creates a SMTP, SMTPS, POP3, POP3S, IMAP, and IMAPS server binding onto non-default ports.GreenMail(ServerSetup config)
Call this constructor if you want to run one of the email servers onlyGreenMail(ServerSetup[] config)
Call this constructor if you want to run more than one of the email servers
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ImapServer
getImap()
ImapServer
getImaps()
Managers
getManagers()
Pop3Server
getPop3()
Pop3Server
getPop3s()
javax.mail.internet.MimeMessage[]
getReceivedMessages()
SmtpServer
getSmtp()
SmtpServer
getSmtps()
GreenMailUser
setUser(java.lang.String email, java.lang.String password)
Sets the password for the account linked to email.GreenMailUser
setUser(java.lang.String email, java.lang.String login, java.lang.String password)
void
setUsers(java.util.Properties users)
Sets up accounts with password based on a properties map where the key is the email and the value the passwordvoid
start()
void
stop()
GreenMailUtil
util()
boolean
waitForIncomingEmail(int emailCount)
Does the same thing asObject.wait(long, int)
but with a timeout of 5000msboolean
waitForIncomingEmail(long timeout, int emailCount)
Use this method if you are sending email in a different thread from the one you're testing from.
-
-
-
Constructor Detail
-
GreenMail
public GreenMail()
Creates a SMTP, SMTPS, POP3, POP3S, IMAP, and IMAPS server binding onto non-default ports. The ports numbers are defined inServerSetupTest
-
GreenMail
public GreenMail(ServerSetup config)
Call this constructor if you want to run one of the email servers only- Parameters:
config
-
-
GreenMail
public GreenMail(ServerSetup[] config)
Call this constructor if you want to run more than one of the email servers- Parameters:
config
-
-
-
Method Detail
-
start
public void start()
-
stop
public void stop()
-
getSmtp
public SmtpServer getSmtp()
-
getImap
public ImapServer getImap()
-
getPop3
public Pop3Server getPop3()
-
getSmtps
public SmtpServer getSmtps()
-
getImaps
public ImapServer getImaps()
-
getPop3s
public Pop3Server getPop3s()
-
getManagers
public Managers getManagers()
-
waitForIncomingEmail
public boolean waitForIncomingEmail(long timeout, int emailCount) throws java.lang.InterruptedException
Use this method if you are sending email in a different thread from the one you're testing from. Block waits for an email to arrive in any mailbox for any user. Implementation Detail: No polling wait implementation- Parameters:
timeout
- maximum time in ms to wait for emailCount of messages to arrive before giving up and returning falseemailCount
- waits for these many emails to arrive before returning- Returns:
- Returns false if timeout period was reached, otherwise true.
- Throws:
java.lang.InterruptedException
-
waitForIncomingEmail
public boolean waitForIncomingEmail(int emailCount) throws java.lang.InterruptedException
Does the same thing asObject.wait(long, int)
but with a timeout of 5000ms- Parameters:
emailCount
-- Returns:
- Throws:
java.lang.InterruptedException
-
getReceivedMessages
public javax.mail.internet.MimeMessage[] getReceivedMessages()
- Returns:
- Returns all messags in all folders for all users
GreenMailUtil
has a bunch of static helper methods to extract body text etc.
-
setUser
public GreenMailUser setUser(java.lang.String email, java.lang.String password)
Sets the password for the account linked to email. If no account exits, one is automatically created when an email is received The automatically created account has the account login and password equal to the email address.- Parameters:
email
-password
-
-
setUser
public GreenMailUser setUser(java.lang.String email, java.lang.String login, java.lang.String password)
-
setUsers
public void setUsers(java.util.Properties users)
Sets up accounts with password based on a properties map where the key is the email and the value the password- Parameters:
users
-
-
util
public GreenMailUtil util()
-
-