Package com.icegreen.greenmail.util
Class ServerSetup
- java.lang.Object
-
- com.icegreen.greenmail.util.ServerSetup
-
public class ServerSetup extends Object
Defines the default ports
Usesmtp 25 smtps 465 pop3 110 pop3s 995 imap 143 imaps 993 ServerSetupTestfor non-default ports- Since:
- Jan 28, 2006
Use
ServerSetupTestfor non-default ports - Version:
- $Id: $
- Author:
- Wael Chatila
-
-
Field Summary
Fields Modifier and Type Field Description static ServerSetup[]ALLstatic longCONNECTION_TIMEOUTDefault socket connection timeout.static ServerSetupIMAPstatic ServerSetupIMAPSstatic ServerSetupPOP3static ServerSetupPOP3Sstatic intPORT_IMAPstatic intPORT_IMAPSstatic intPORT_POP3static intPORT_POP3Sstatic intPORT_SMTPstatic intPORT_SMTPSstatic StringPROTOCOL_IMAPstatic StringPROTOCOL_IMAPSstatic StringPROTOCOL_POP3static StringPROTOCOL_POP3Sstatic StringPROTOCOL_SMTPstatic StringPROTOCOL_SMTPSstatic String[]PROTOCOLSstatic longREAD_TIMEOUTDefault socket read timeout.static longSERVER_STARTUP_TIMEOUTDefault server startup timeout in milliseconds.static ServerSetupSMTPstatic ServerSetup[]SMTP_IMAPstatic ServerSetup[]SMTP_POP3static ServerSetup[]SMTP_POP3_IMAPstatic ServerSetupSMTPSstatic ServerSetup[]SMTPS_IMAPSstatic ServerSetup[]SMTPS_POP3Sstatic ServerSetup[]SMTPS_POP3S_IMAPS
-
Constructor Summary
Constructors Constructor Description ServerSetup(int port, String bindAddress, String protocol)Creates a configuration.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description PropertiesconfigureJavaMailSessionProperties(Properties properties, boolean debug)Creates default properties for a JavaMail session.ServerSetupcreateCopy()Create a deep copy.ServerSetupcreateCopy(int port, String bindAddress, String protocol)Create a deep copy.static ServerSetup[]createCopy(ServerSetup[] serverSetups, UnaryOperator<ServerSetup> copyMutator)Creates a copy applying given mutator on each copy.ServerSetupcreateCopy(String bindAddress)Create a deep copy.ServerSetupdynamicPort()Enable dynamic port allocation.static ServerSetup[]dynamicPort(ServerSetup[] serverSetups)Creates a copy with dynamic ports (auto-detecting available ports) enabled.booleanequals(Object o)StringgetBindAddress()longgetConnectionTimeout()StringgetDefaultBindAddress()Gets the public default host address "0.0.0.0" .static StringgetLocalHostAddress()intgetPort()StringgetProtocol()longgetReadTimeout()longgetServerStartupTimeout()longgetWriteTimeout()inthashCode()booleanisDynamicPort()True if available port gets dynamically allocated.booleanisSecure()booleanisVerbose()static ServerSetup[]mailSessionProperty(ServerSetup[] serverSetups, String key, String value)Creates a copy with configured default mail session property.ServerSetupmailSessionProperty(String key, String value)Create a new server setup copy, configured with given JavaMail session property.ServerSetupport(int port)Creates a deep copy and updates port.voidsetConnectionTimeout(long connectionTimeout)voidsetReadTimeout(long readTimeout)voidsetServerStartupTimeout(long timeoutInMs)Sets the server startup timeout in milliseconds.ServerSetupsetVerbose(boolean verbose)voidsetWriteTimeout(long writeTimeout)StringtoString()ServerSetupverbose(boolean verbose)Creates a deep copy with verbose configured.static ServerSetup[]verbose(ServerSetup[] serverSetups)Creates a copy with verbose mode enabled.ServerSetupwithPort(int port)Deprecated.useport(int)- will be deprecated in 2.1
-
-
-
Field Detail
-
PROTOCOL_SMTP
public static final String PROTOCOL_SMTP
- See Also:
- Constant Field Values
-
PROTOCOL_SMTPS
public static final String PROTOCOL_SMTPS
- See Also:
- Constant Field Values
-
PROTOCOL_POP3
public static final String PROTOCOL_POP3
- See Also:
- Constant Field Values
-
PROTOCOL_POP3S
public static final String PROTOCOL_POP3S
- See Also:
- Constant Field Values
-
PROTOCOL_IMAP
public static final String PROTOCOL_IMAP
- See Also:
- Constant Field Values
-
PROTOCOL_IMAPS
public static final String PROTOCOL_IMAPS
- See Also:
- Constant Field Values
-
PROTOCOLS
public static final String[] PROTOCOLS
-
PORT_SMTP
public static final int PORT_SMTP
- See Also:
- Constant Field Values
-
PORT_SMTPS
public static final int PORT_SMTPS
- See Also:
- Constant Field Values
-
PORT_POP3
public static final int PORT_POP3
- See Also:
- Constant Field Values
-
PORT_POP3S
public static final int PORT_POP3S
- See Also:
- Constant Field Values
-
PORT_IMAP
public static final int PORT_IMAP
- See Also:
- Constant Field Values
-
PORT_IMAPS
public static final int PORT_IMAPS
- See Also:
- Constant Field Values
-
SMTP
public static final ServerSetup SMTP
-
SMTPS
public static final ServerSetup SMTPS
-
POP3
public static final ServerSetup POP3
-
POP3S
public static final ServerSetup POP3S
-
IMAP
public static final ServerSetup IMAP
-
IMAPS
public static final ServerSetup IMAPS
-
SMTP_POP3
public static final ServerSetup[] SMTP_POP3
-
SMTP_IMAP
public static final ServerSetup[] SMTP_IMAP
-
SMTP_POP3_IMAP
public static final ServerSetup[] SMTP_POP3_IMAP
-
SMTPS_POP3S
public static final ServerSetup[] SMTPS_POP3S
-
SMTPS_POP3S_IMAPS
public static final ServerSetup[] SMTPS_POP3S_IMAPS
-
SMTPS_IMAPS
public static final ServerSetup[] SMTPS_IMAPS
-
ALL
public static final ServerSetup[] ALL
-
READ_TIMEOUT
public static final long READ_TIMEOUT
Default socket read timeout. See JavaMail session properties.- See Also:
- Constant Field Values
-
CONNECTION_TIMEOUT
public static final long CONNECTION_TIMEOUT
Default socket connection timeout. See JavaMail session properties.- See Also:
- Constant Field Values
-
SERVER_STARTUP_TIMEOUT
public static final long SERVER_STARTUP_TIMEOUT
Default server startup timeout in milliseconds.- See Also:
- Constant Field Values
-
-
Method Detail
-
getLocalHostAddress
public static String getLocalHostAddress()
-
getDefaultBindAddress
public String getDefaultBindAddress()
Gets the public default host address "0.0.0.0" .- Returns:
- the public IP host address.
-
isSecure
public boolean isSecure()
-
getProtocol
public String getProtocol()
-
getBindAddress
public String getBindAddress()
-
getPort
public int getPort()
-
getConnectionTimeout
public long getConnectionTimeout()
-
setConnectionTimeout
public void setConnectionTimeout(long connectionTimeout)
-
getReadTimeout
public long getReadTimeout()
-
setReadTimeout
public void setReadTimeout(long readTimeout)
-
getWriteTimeout
public long getWriteTimeout()
-
setWriteTimeout
public void setWriteTimeout(long writeTimeout)
-
getServerStartupTimeout
public long getServerStartupTimeout()
-
withPort
@Deprecated public ServerSetup withPort(int port)
Deprecated.useport(int)- will be deprecated in 2.1Creates a deep copy and updates port.- Parameters:
port- the port (0 for dynamic port allocation).- Returns:
- a modified copy.
-
port
public ServerSetup port(int port)
Creates a deep copy and updates port.- Parameters:
port- the port (0 for dynamic port allocation).- Returns:
- a modified copy.
-
isDynamicPort
public boolean isDynamicPort()
True if available port gets dynamically allocated.- Returns:
- true if enabled.
-
dynamicPort
public ServerSetup dynamicPort()
Enable dynamic port allocation.- Returns:
- a modified copy with dynamic port allocation enabled.
-
isVerbose
public boolean isVerbose()
-
setVerbose
public ServerSetup setVerbose(boolean verbose)
- Parameters:
verbose- if true enables JavaMail debug output by setting JavaMail property 'mail.debug'
-
verbose
public ServerSetup verbose(boolean verbose)
Creates a deep copy with verbose configured.- Parameters:
verbose- if true enables JavaMail debug output by setting JavaMail property 'mail.debug'- Returns:
- a deep copy with verbose configured
-
setServerStartupTimeout
public void setServerStartupTimeout(long timeoutInMs)
Sets the server startup timeout in milliseconds.- Parameters:
timeoutInMs- timeout in milliseconds.
-
configureJavaMailSessionProperties
public Properties configureJavaMailSessionProperties(Properties properties, boolean debug)
Creates default properties for a JavaMail session. Concrete server implementations can add protocol specific settings. Order of application:- Default GreenMail properties - e.g. common properties such as
mail.debugwhen log level is debug or protocol specific settings such asmail.smtp.port - ServerSetup configured mail session properties
- Parameter provided properties
mail.PROTOCOL.portFor details see- https://jakarta.ee/specifications/mail/2.0/apidocs/jakarta.mail/module-summary.html for some general settings
- https://jakarta.ee/specifications/mail/1.6/apidocs/index.html?com/sun/mail/smtp/package-summary.html for valid SMTP properties.
- https://jakarta.ee/specifications/mail/1.6/apidocs/index.html?com/sun/mail/imap/package-summary.html for valid IMAP properties
- https://jakarta.ee/specifications/mail/1.6/apidocs/index.html?com/sun/mail/pop3/package-summary.html for valid POP3 properties.
- Parameters:
properties- additional and optional properties which overwrite automatically added properties. Can be null.debug- sets JavaMail debug properties- Returns:
- default properties.
-
createCopy
public ServerSetup createCopy()
Create a deep copy.- Returns:
- a copy of the server setup configuration.
-
createCopy
public ServerSetup createCopy(String bindAddress)
Create a deep copy.- Parameters:
bindAddress- overwrites bind address when creating deep copy.- Returns:
- a copy of the server setup configuration.
-
createCopy
public ServerSetup createCopy(int port, String bindAddress, String protocol)
Create a deep copy.- Parameters:
port- overwrites the port.bindAddress- overwrites bind address.protocol- overwrites the protocol.- Returns:
- a copy of the server setup configuration.
-
mailSessionProperty
public ServerSetup mailSessionProperty(String key, String value)
Create a new server setup copy, configured with given JavaMail session property.For protocol specific properties see
- https://jakarta.ee/specifications/mail/2.0/apidocs/jakarta.mail/jakarta/mail/package-summary.html for general settings
- https://jakarta.ee/specifications/mail/1.6/apidocs/index.html?com/sun/mail/smtp/package-summary.html for SMTP properties.
- https://jakarta.ee/specifications/mail/1.6/apidocs/index.html?com/sun/mail/imap/package-summary.html for IMAP properties
- https://jakarta.ee/specifications/mail/1.6/apidocs/index.html?com/sun/mail/pop3/package-summary.html for POP3 properties.
- Parameters:
key- the keyvalue- the value- Returns:
- a deep copy with configured session property
-
createCopy
public static ServerSetup[] createCopy(ServerSetup[] serverSetups, UnaryOperator<ServerSetup> copyMutator)
Creates a copy applying given mutator on each copy.- Parameters:
serverSetups- the server setupscopyMutator- the mutator receiving the original server setup and returning a modified copy- Returns:
- mutated copies
-
verbose
public static ServerSetup[] verbose(ServerSetup[] serverSetups)
Creates a copy with verbose mode enabled.- Parameters:
serverSetups- the server setups.- Returns:
- copies of server setups with verbose mode enabled.
-
dynamicPort
public static ServerSetup[] dynamicPort(ServerSetup[] serverSetups)
Creates a copy with dynamic ports (auto-detecting available ports) enabled.- Parameters:
serverSetups- the server setups.- Returns:
- copies of server setups with verbose mode enabled.
-
mailSessionProperty
public static ServerSetup[] mailSessionProperty(ServerSetup[] serverSetups, String key, String value)
Creates a copy with configured default mail session property.- Parameters:
serverSetups- the server setups.key- the keyvalue- the value- Returns:
- copies of server setups with verbose mode enabled.
- See Also:
mailSessionProperty(String, String)
- Default GreenMail properties - e.g. common properties such as
-
-