|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.mail.javamail.JavaMailSenderImpl
public class JavaMailSenderImpl
Production implementation of the JavaMailSender
interface,
supporting both JavaMail MimeMessages
and Spring
SimpleMailMessages
. Can also be used as a
plain MailSender
implementation.
Allows for defining all settings locally as bean properties.
Alternatively, a pre-configured JavaMail javax.mail.Session
can be
specified, possibly pulled from an application server's JNDI environment.
Non-default properties in this object will always override the settings
in the JavaMail Session
. Note that if overriding all values locally,
there is no added value in setting a pre-configured Session
.
javax.mail.internet.MimeMessage
,
javax.mail.Session
,
setSession(Session)
,
setJavaMailProperties(java.util.Properties)
,
setHost(java.lang.String)
,
setPort(int)
,
setUsername(java.lang.String)
,
setPassword(java.lang.String)
Field Summary | |
---|---|
static int |
DEFAULT_PORT
The default port: -1 |
static java.lang.String |
DEFAULT_PROTOCOL
The default protocol: 'smtp' |
private java.lang.String |
defaultEncoding
|
private javax.activation.FileTypeMap |
defaultFileTypeMap
|
private static java.lang.String |
HEADER_MESSAGE_ID
|
private java.lang.String |
host
|
private java.util.Properties |
javaMailProperties
|
private java.lang.String |
password
|
private int |
port
|
private java.lang.String |
protocol
|
private Session |
session
|
private java.lang.String |
username
|
Constructor Summary | |
---|---|
JavaMailSenderImpl()
Create a new instance of the JavaMailSenderImpl class. |
Method Summary | |
---|---|
MimeMessage |
createMimeMessage()
This implementation creates a SmartMimeMessage, holding the specified default encoding and default FileTypeMap. |
MimeMessage |
createMimeMessage(java.io.InputStream contentStream)
Create a new JavaMail MimeMessage for the underlying JavaMail Session of this sender, using the given input stream as the message source. |
protected void |
doSend(MimeMessage[] mimeMessages,
java.lang.Object[] originalMessages)
Actually send the given array of MimeMessages via JavaMail. |
java.lang.String |
getDefaultEncoding()
Return the default encoding for MimeMessages ,
or null if none. |
javax.activation.FileTypeMap |
getDefaultFileTypeMap()
Return the default Java Activation FileTypeMap for
MimeMessages , or null if none. |
java.lang.String |
getHost()
Return the mail server host. |
java.util.Properties |
getJavaMailProperties()
Allow Map access to the JavaMail properties of this sender, with the option to add or override specific entries. |
java.lang.String |
getPassword()
Return the password for the account at the mail host. |
int |
getPort()
Return the mail server port. |
java.lang.String |
getProtocol()
Return the mail protocol. |
Session |
getSession()
Return the JavaMail Session ,
lazily initializing it if hasn't been specified explicitly. |
protected Transport |
getTransport(Session session)
Obtain a Transport object from the given JavaMail Session, using the configured protocol. |
java.lang.String |
getUsername()
Return the username for the account at the mail host. |
void |
send(MimeMessage mimeMessage)
Send the given JavaMail MIME message. |
void |
send(MimeMessage[] mimeMessages)
Send the given JavaMail MIME message. |
void |
send(SimpleMailMessage simpleMessage)
Send the given JavaMail MIME message. |
void |
send(SimpleMailMessage[] simpleMessages)
Send the given JavaMail MIME message. |
void |
setDefaultEncoding(java.lang.String defaultEncoding)
Set the default encoding to use for MimeMessages
created by this instance. |
void |
setDefaultFileTypeMap(javax.activation.FileTypeMap defaultFileTypeMap)
Set the default Java Activation FileTypeMap to use for
MimeMessages created by this instance. |
void |
setHost(java.lang.String host)
Set the mail server host, typically an SMTP host. |
void |
setJavaMailProperties(java.util.Properties javaMailProperties)
Set JavaMail properties for the Session . |
void |
setPassword(java.lang.String password)
Set the password for the account at the mail host, if any. |
void |
setPort(int port)
Set the mail server port. |
void |
setProtocol(java.lang.String protocol)
Set the mail protocol. |
void |
setSession(Session session)
Set the JavaMail Session , possibly pulled from JNDI. |
void |
setUsername(java.lang.String username)
Set the username for the account at the mail host, if any. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String DEFAULT_PROTOCOL
public static final int DEFAULT_PORT
private static final java.lang.String HEADER_MESSAGE_ID
private java.util.Properties javaMailProperties
private Session session
private java.lang.String protocol
private java.lang.String host
private int port
private java.lang.String username
private java.lang.String password
private java.lang.String defaultEncoding
private javax.activation.FileTypeMap defaultFileTypeMap
Constructor Detail |
---|
public JavaMailSenderImpl()
JavaMailSenderImpl
class.
Initializes the "defaultFileTypeMap"
property with a default ConfigurableMimeFileTypeMap
.
Method Detail |
---|
public void setJavaMailProperties(java.util.Properties javaMailProperties)
Session
.
A new Session
will be created with those properties.
Use either this method or setSession(Session)
, but not both.
Non-default properties in this instance will override given JavaMail properties.
public java.util.Properties getJavaMailProperties()
Useful for specifying entries directly, for example via "javaMailProperties[mail.smtp.auth]".
public void setSession(Session session)
Session
, 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 the Session
.
setJavaMailProperties(java.util.Properties)
public Session getSession()
Session
,
lazily initializing it if hasn't been specified explicitly.
public void setProtocol(java.lang.String protocol)
public java.lang.String getProtocol()
public void setHost(java.lang.String host)
Default is the default host of the underlying JavaMail Session.
public java.lang.String getHost()
public void setPort(int port)
Default is DEFAULT_PORT
, letting JavaMail use the default
SMTP port (25).
public int getPort()
public void setUsername(java.lang.String username)
Note that the underlying JavaMail Session
has to be
configured with the property "mail.smtp.auth"
set to
true
, else the specified username will not be sent to the
mail server by the JavaMail runtime. If you are not explicitly passing
in a Session
to use, simply specify this setting via
setJavaMailProperties(java.util.Properties)
.
setSession(Session)
,
setPassword(java.lang.String)
public java.lang.String getUsername()
public void setPassword(java.lang.String password)
Note that the underlying JavaMail Session
has to be
configured with the property "mail.smtp.auth"
set to
true
, else the specified password will not be sent to the
mail server by the JavaMail runtime. If you are not explicitly passing
in a Session
to use, simply specify this setting via
setJavaMailProperties(java.util.Properties)
.
setSession(Session)
,
setUsername(java.lang.String)
public java.lang.String getPassword()
public void setDefaultEncoding(java.lang.String defaultEncoding)
MimeMessages
created by this instance.
Such an encoding will be auto-detected by MimeMessageHelper
.
public java.lang.String getDefaultEncoding()
MimeMessages
,
or null
if none.
public void setDefaultFileTypeMap(javax.activation.FileTypeMap defaultFileTypeMap)
FileTypeMap
to use for
MimeMessages
created by this instance.
A FileTypeMap
specified here will be autodetected by
MimeMessageHelper
, avoiding the need to specify the
FileTypeMap
for each MimeMessageHelper
instance.
For example, you can specify a custom instance of Spring's
ConfigurableMimeFileTypeMap
here. If not explicitly specified,
a default ConfigurableMimeFileTypeMap
will be used, containing
an extended set of MIME type mappings (as defined by the
mime.types
file contained in the Spring jar).
MimeMessageHelper.setFileTypeMap(javax.activation.FileTypeMap)
public javax.activation.FileTypeMap getDefaultFileTypeMap()
FileTypeMap
for
MimeMessages
, or null
if none.
public void send(SimpleMailMessage simpleMessage) throws MailException
JavaMailSender
JavaMailSender.createMimeMessage()
.
send
in interface JavaMailSender
send
in interface MailSender
simpleMessage
- message to send
MailParseException
- in case of failure when parsing the message
MailAuthenticationException
- in case of authentication failure
MailSendException
- in case of failure when sending the message
MailException
JavaMailSender.createMimeMessage()
public void send(SimpleMailMessage[] simpleMessages) throws MailException
JavaMailSender
JavaMailSender.createMimeMessage()
.
send
in interface JavaMailSender
send
in interface MailSender
simpleMessages
- message to send
MailParseException
- in case of failure when parsing a message
MailAuthenticationException
- in case of authentication failure
MailSendException
- in case of failure when sending a message
MailException
JavaMailSender.createMimeMessage()
public MimeMessage createMimeMessage()
MimeMessageHelper
, which will use
the carried encoding and FileTypeMap unless explicitly overridden.
createMimeMessage
in interface JavaMailSender
setDefaultEncoding(java.lang.String)
,
setDefaultFileTypeMap(javax.activation.FileTypeMap)
public MimeMessage createMimeMessage(java.io.InputStream contentStream) throws MailException
JavaMailSender
createMimeMessage
in interface JavaMailSender
contentStream
- the raw MIME input stream for the message
MailParseException
- in case of message creation failure
MailException
public void send(MimeMessage mimeMessage) throws MailException
JavaMailSender
JavaMailSender.createMimeMessage()
.
send
in interface JavaMailSender
send
in interface MailSender
mimeMessage
- message to send
MailParseException
- in case of failure when parsing the message
MailAuthenticationException
- in case of authentication failure
MailSendException
- in case of failure when sending the message
MailException
JavaMailSender.createMimeMessage()
public void send(MimeMessage[] mimeMessages) throws MailException
JavaMailSender
JavaMailSender.createMimeMessage()
.
send
in interface JavaMailSender
send
in interface MailSender
mimeMessages
- message to send
MailParseException
- in case of failure when parsing a message
MailAuthenticationException
- in case of authentication failure
MailSendException
- in case of failure when sending a message
MailException
JavaMailSender.createMimeMessage()
protected void doSend(MimeMessage[] mimeMessages, java.lang.Object[] originalMessages) throws MailException
mimeMessages
- MimeMessage objects to sendoriginalMessages
- corresponding original message objects
that the MimeMessages have been created from (with same array
length and indices as the "mimeMessages" array), if any
MailAuthenticationException
- in case of authentication failure
MailSendException
- in case of failure when sending a message
MailException
protected Transport getTransport(Session session) throws NoSuchProviderException
Can be overridden in subclasses, e.g. to return a mock Transport object.
NoSuchProviderException
javax.mail.Session#getTransport(String)
,
getProtocol()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |