Class MailMessageSender
- All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean
,WebServiceMessageSender
WebServiceMessageSender
implementation that uses Mail MimeMessage
s. Requires a
transport
and store
URI to be set.
Calling WebServiceConnection.receive(WebServiceMessageFactory)
on connections created by this message sender
will result in a blocking call, for the amount of milliseconds specified by the receiveSleepTime
property. This will give the server time to formulate a response message. By default, this propery
is set to 1 minute. For a proper request-response conversation to work, this property value must not be smaller the
pollingInterval
property of the server-side message
receiver polling strategy.
This message sender supports URI's of the following format:
mailto:to[?param-name=param-value][¶m-name=param-value]*where the characters :, ?, and & stand for themselves. The to represents a RFC 822 mailbox. Valid param-name include:
param-name Description subject The subject of the request message.
Some examples of email URIs are:
mailto:[email protected]
mailto:[email protected]@?subject=SOAP%20Test
- Since:
- 1.5.0
- Author:
- Arjen Poutsma
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final long
Default timeout for receive operations. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
createConnection
(URI uri) Create a newWebServiceConnection
to the specified URI.void
Sets the from address to use when sending request messages.void
setJavaMailProperties
(Properties javaMailProperties) Set JavaMail properties for theSession
.void
setReceiveSleepTime
(long receiveSleepTime) Set the sleep time to use for receive calls, in milliseconds.void
setSession
(jakarta.mail.Session session) Set the JavaMailSession
, possibly pulled from JNDI.void
setStoreUri
(String storeUri) Sets the JavaMail Store URI to be used for retrieving response messages.void
setTransportUri
(String transportUri) Sets the JavaMail Transport URI to be used for sending response messages.boolean
Does thisWebServiceMessageSender
support the supplied URI?
-
Field Details
-
DEFAULT_RECEIVE_TIMEOUT
public static final long DEFAULT_RECEIVE_TIMEOUTDefault timeout for receive operations. Set to 1000 * 60 milliseconds (i.e. 1 minute).- See Also:
-
-
Constructor Details
-
MailMessageSender
public MailMessageSender()
-
-
Method Details
-
setFrom
Sets the from address to use when sending request messages.- Throws:
jakarta.mail.internet.AddressException
-
setJavaMailProperties
Set JavaMail properties for theSession
.A new
Session
will be created with those properties. Use either this method orsetSession(jakarta.mail.Session)
, but not both.Non-default properties in this instance will override given JavaMail properties.
-
setReceiveSleepTime
public void setReceiveSleepTime(long receiveSleepTime) Set the sleep time to use for receive calls, in milliseconds. The default is 1000 * 60 ms, that is 1 minute. -
setSession
public void setSession(jakarta.mail.Session session) Set the JavaMailSession
, possibly pulled from JNDI.Default is a new
Session
without defaults, that is completely configured via this instance's properties.If using a pre-configured
Session
, non-default properties in this instance will override the settings in theSession
. -
setStoreUri
Sets the JavaMail Store URI to be used for retrieving response messages. Typically takes the form of[imap|pop3]://user:password@host:port/INBOX
. Setting this property is required.For example,
imap://john:[email protected]/INBOX
- See Also:
-
Session.getStore(URLName)
-
setTransportUri
Sets the JavaMail Transport URI to be used for sending response messages. Typically takes the form ofsmtp://user:password@host:port
. Setting this property is required.For example,
smtp://john:[email protected]
- See Also:
-
Session.getTransport(URLName)
-
afterPropertiesSet
- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Throws:
Exception
-
createConnection
Description copied from interface:WebServiceMessageSender
Create a newWebServiceConnection
to the specified URI.- Specified by:
createConnection
in interfaceWebServiceMessageSender
- Parameters:
uri
- the URI to open a connection to- Returns:
- the new connection
- Throws:
IOException
- in case of I/O errors
-
supports
Description copied from interface:WebServiceMessageSender
Does thisWebServiceMessageSender
support the supplied URI?- Specified by:
supports
in interfaceWebServiceMessageSender
- Parameters:
uri
- the URI to be checked- Returns:
true
if thisWebServiceMessageSender
supports the supplied URI
-