Package ch.astorm.smtp4j
Class SmtpServer
java.lang.Object
ch.astorm.smtp4j.SmtpServer
- All Implemented Interfaces:
AutoCloseable
Simple SMTP server.
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddListener(SmtpServerListener listener) Registers the specifiedlistenerto the server's events.voidDeprecated.voidclose()Closes thisSmtpServerinstance and releases all the resources associated to it.jakarta.mail.SessionCreates a newSessioninstance that will send messages to this server.Returns the listeners of this server.Returns the currentSmtpMessageHandler.intgetPort()Returns the port on which theSmtpServerlisten to.Deprecated.UsereadReceivedMessages()instead.Returns the basicPropertiesthat can be used forSession.booleanisClosed()Returns true if the server has been closed or is not started yet.booleanReturns true if theSmtpServeris started and is actually listening for new messages.Returns all the (newly) received messages.Returns aSmtpMessageHandler.SmtpMessageIteratorthat will block until a newSmtpMessageis available.booleanremoveListener(SmtpServerListener listener) Removes the specifiedlistenerof the server's event notifications.voidsetMessageHandler(SmtpMessageHandler handler) Defines theSmtpMessageHandlerthat will receive all the incoming messages.voidstart()Starts the server.
-
Field Details
-
DEFAULT_PORT
public static int DEFAULT_PORTDefault SMTP port. The port 25 is generally used for a simple SMTP relay. Ports 587 and 2525 uses explicit SSL/TLS connections whereas port 465 is for implicit SSL/TLS connections. See here for more information.
-
-
Constructor Details
-
SmtpServer
public SmtpServer(int port) Creates a newSmtpServer.- Parameters:
port- The port to listen to. A value less or equal to zero indicates that a free port as to be discovered when thestartmethod is called.
-
-
Method Details
-
getSessionProperties
Returns the basicPropertiesthat can be used forSession. If the port is dynamic, then the server must have been started before this method can be called.- Returns:
- The properties for this server.
-
createSession
public jakarta.mail.Session createSession()Creates a newSessioninstance that will send messages to this server.- Returns:
- A new
Sessioninstance.
-
setMessageHandler
Defines theSmtpMessageHandlerthat will receive all the incoming messages. By default, all the messages are stored in a localSmtpMessageStorage.The
handlerwill replace the current message handler that will not be notified of received messages anymore. It is possible to set it tonullto restore default behavior.- Parameters:
handler- The handler or null.
-
getMessageHandler
Returns the currentSmtpMessageHandler.- Returns:
- The current message handler.
-
receivedMessageIterator
Returns aSmtpMessageHandler.SmtpMessageIteratorthat will block until a newSmtpMessageis available.- Returns:
- A new {code SmtpMessageIterator} instance.
- See Also:
-
readReceivedMessages
Returns all the (newly) received messages. If no message has been received since the last invocation, an empty list will be returned.- Returns:
- A list with the newly received messages or an empty list.
- See Also:
-
getReceivedMessages
Deprecated.UsereadReceivedMessages()instead.Returns all the received messages.- Returns:
- The received messages.
- See Also:
-
clearReceivedMessages
Deprecated.UsereadReceivedMessages()instead.Clears all the received messages.- See Also:
-
getPort
public int getPort()Returns the port on which theSmtpServerlisten to. If the value is zero or less, then the port will be discovered when the server isstarted.- Returns:
- The port.
-
isRunning
public boolean isRunning()Returns true if theSmtpServeris started and is actually listening for new messages.- Returns:
- True if the server has been
startedand not yet closed.
-
isClosed
public boolean isClosed()Returns true if the server has been closed or is not started yet.- Returns:
- True if the server has been closed or is not started yet.
-
start
Starts the server. If the server is already started, this method will raise andIllegalStateException.- Throws:
IOException
-
addListener
Registers the specifiedlistenerto the server's events.- Parameters:
listener- The listener to add.
-
removeListener
Removes the specifiedlistenerof the server's event notifications.- Parameters:
listener- The listener to remove.- Returns:
- True if the listener has been removed.
-
getListeners
Returns the listeners of this server. The returned list is live.- Returns:
- The listeners.
-
close
Closes thisSmtpServerinstance and releases all the resources associated to it. Once closed, it possible to restart it again. If the server is already closed, this method does nothing.- Specified by:
closein interfaceAutoCloseable- Throws:
IOException
-
readReceivedMessages()instead.