类 JavaMailSenderImpl
- java.lang.Object
- org.springframework.mail.javamail.JavaMailSenderImpl
- 所有已实现的接口:
JavaMailSender
,MailSender
public class JavaMailSenderImpl extends Object implements JavaMailSender
Production implementation of theJavaMailSender
interface, supporting both JavaMailMimeMessages
and SpringSimpleMailMessages
. Can also be used as a plainMailSender
implementation.Allows for defining all settings locally as bean properties. Alternatively, a pre-configured JavaMail
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-configuredSession
.- 从以下版本开始:
- 10.09.2003
- 作者:
- Dmitriy Kopylenko, Juergen Hoeller
- 另请参阅:
MimeMessage
,Session
,setSession(javax.mail.Session)
,setJavaMailProperties(java.util.Properties)
,setHost(java.lang.String)
,setPort(int)
,setUsername(java.lang.String)
,setPassword(java.lang.String)
字段概要
字段 修饰符和类型 字段 说明 static int
DEFAULT_PORT
The default port: -1static String
DEFAULT_PROTOCOL
The default protocol: 'smtp'
构造器概要
构造器 构造器 说明 JavaMailSenderImpl()
Create a new instance of theJavaMailSenderImpl
class.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 protected Transport
connectTransport()
Obtain and connect a Transport from the underlying JavaMail Session, passing in the specified host, port, username, and password.MimeMessage
createMimeMessage()
This implementation creates a SmartMimeMessage, holding the specified default encoding and default FileTypeMap.MimeMessage
createMimeMessage(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, Object[] originalMessages)
Actually send the given array of MimeMessages via JavaMail.String
getDefaultEncoding()
Return the default encoding forMimeMessages
, ornull
if none.FileTypeMap
getDefaultFileTypeMap()
String
getHost()
Return the mail server host.Properties
getJavaMailProperties()
Allow Map access to the JavaMail properties of this sender, with the option to add or override specific entries.String
getPassword()
Return the password for the account at the mail host.int
getPort()
Return the mail server port.String
getProtocol()
Return the mail protocol.Session
getSession()
Return the JavaMailSession
, 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.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 array of JavaMail MIME messages in batch.void
send(MimeMessagePreparator mimeMessagePreparator)
Send the JavaMail MIME message prepared by the given MimeMessagePreparator.void
send(MimeMessagePreparator... mimeMessagePreparators)
Send the JavaMail MIME messages prepared by the given MimeMessagePreparators.void
send(SimpleMailMessage simpleMessage)
Send the given simple mail message.void
send(SimpleMailMessage... simpleMessages)
Send the given array of simple mail messages in batch.void
setDefaultEncoding(String defaultEncoding)
Set the default encoding to use forMimeMessages
created by this instance.void
setDefaultFileTypeMap(FileTypeMap defaultFileTypeMap)
Set the default Java ActivationFileTypeMap
to use forMimeMessages
created by this instance.void
setHost(String host)
Set the mail server host, typically an SMTP host.void
setJavaMailProperties(Properties javaMailProperties)
Set JavaMail properties for theSession
.void
setPassword(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(String protocol)
Set the mail protocol.void
setSession(Session session)
Set the JavaMailSession
, possibly pulled from JNDI.void
setUsername(String username)
Set the username for the account at the mail host, if any.void
testConnection()
Validate that this instance can connect to the server that it is configured for.
字段详细资料
DEFAULT_PROTOCOL
public static final String DEFAULT_PROTOCOL
The default protocol: 'smtp'- 另请参阅:
- 常量字段值
DEFAULT_PORT
public static final int DEFAULT_PORT
The default port: -1- 另请参阅:
- 常量字段值
构造器详细资料
JavaMailSenderImpl
public JavaMailSenderImpl()
Create a new instance of theJavaMailSenderImpl
class.Initializes the
"defaultFileTypeMap"
property with a defaultConfigurableMimeFileTypeMap
.
方法详细资料
setJavaMailProperties
public void setJavaMailProperties(Properties javaMailProperties)
Set JavaMail properties for theSession
.A new
Session
will be created with those properties. Use either this method orsetSession(javax.mail.Session)
, but not both.Non-default properties in this instance will override given JavaMail properties.
getJavaMailProperties
public Properties getJavaMailProperties()
Allow Map access to the JavaMail properties of this sender, with the option to add or override specific entries.Useful for specifying entries directly, for example via "javaMailProperties[mail.smtp.auth]".
setSession
public void setSession(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
.
getSession
public Session getSession()
Return the JavaMailSession
, lazily initializing it if hasn't been specified explicitly.
setProtocol
public void setProtocol(String protocol)
Set the mail protocol. Default is "smtp".
getProtocol
public String getProtocol()
Return the mail protocol.
setHost
public void setHost(String host)
Set the mail server host, typically an SMTP host.Default is the default host of the underlying JavaMail Session.
setPort
public void setPort(int port)
Set the mail server port.Default is
DEFAULT_PORT
, letting JavaMail use the default SMTP port (25).
getPort
public int getPort()
Return the mail server port.
setUsername
public void setUsername(String username)
Set the username for the account at the mail host, if any.Note that the underlying JavaMail
Session
has to be configured with the property"mail.smtp.auth"
set totrue
, else the specified username will not be sent to the mail server by the JavaMail runtime. If you are not explicitly passing in aSession
to use, simply specify this setting viasetJavaMailProperties(java.util.Properties)
.
getUsername
public String getUsername()
Return the username for the account at the mail host.
setPassword
public void setPassword(String password)
Set the password for the account at the mail host, if any.Note that the underlying JavaMail
Session
has to be configured with the property"mail.smtp.auth"
set totrue
, else the specified password will not be sent to the mail server by the JavaMail runtime. If you are not explicitly passing in aSession
to use, simply specify this setting viasetJavaMailProperties(java.util.Properties)
.
getPassword
public String getPassword()
Return the password for the account at the mail host.
setDefaultEncoding
public void setDefaultEncoding(String defaultEncoding)
Set the default encoding to use forMimeMessages
created by this instance.Such an encoding will be auto-detected by
MimeMessageHelper
.
getDefaultEncoding
public String getDefaultEncoding()
Return the default encoding forMimeMessages
, ornull
if none.
setDefaultFileTypeMap
public void setDefaultFileTypeMap(FileTypeMap defaultFileTypeMap)
Set the default Java ActivationFileTypeMap
to use forMimeMessages
created by this instance.A
FileTypeMap
specified here will be autodetected byMimeMessageHelper
, avoiding the need to specify theFileTypeMap
for eachMimeMessageHelper
instance.For example, you can specify a custom instance of Spring's
ConfigurableMimeFileTypeMap
here. If not explicitly specified, a defaultConfigurableMimeFileTypeMap
will be used, containing an extended set of MIME type mappings (as defined by themime.types
file contained in the Spring jar).
getDefaultFileTypeMap
public FileTypeMap getDefaultFileTypeMap()
send
public void send(SimpleMailMessage simpleMessage) throws MailException
从接口复制的说明:MailSender
Send the given simple mail message.- 指定者:
send
在接口中MailSender
- 参数:
simpleMessage
- the message to send- 抛出:
MailParseException
- in case of failure when parsing the messageMailAuthenticationException
- in case of authentication failureMailSendException
- in case of failure when sending the messageMailException
send
public void send(SimpleMailMessage... simpleMessages) throws MailException
从接口复制的说明:MailSender
Send the given array of simple mail messages in batch.- 指定者:
send
在接口中MailSender
- 参数:
simpleMessages
- the messages to send- 抛出:
MailParseException
- in case of failure when parsing a messageMailAuthenticationException
- in case of authentication failureMailSendException
- in case of failure when sending a messageMailException
createMimeMessage
public MimeMessage createMimeMessage()
This implementation creates a SmartMimeMessage, holding the specified default encoding and default FileTypeMap. This special defaults-carrying message will be autodetected byMimeMessageHelper
, which will use the carried encoding and FileTypeMap unless explicitly overridden.- 指定者:
createMimeMessage
在接口中JavaMailSender
- 返回:
- the new MimeMessage instance
- 另请参阅:
setDefaultEncoding(java.lang.String)
,setDefaultFileTypeMap(FileTypeMap)
createMimeMessage
public MimeMessage createMimeMessage(InputStream contentStream) throws MailException
从接口复制的说明:JavaMailSender
Create a new JavaMail MimeMessage for the underlying JavaMail Session of this sender, using the given input stream as the message source.- 指定者:
createMimeMessage
在接口中JavaMailSender
- 参数:
contentStream
- the raw MIME input stream for the message- 返回:
- the new MimeMessage instance
- 抛出:
MailParseException
- in case of message creation failureMailException
send
public void send(MimeMessage mimeMessage) throws MailException
从接口复制的说明:JavaMailSender
Send the given JavaMail MIME message. The message needs to have been created withJavaMailSender.createMimeMessage()
.- 指定者:
send
在接口中JavaMailSender
- 参数:
mimeMessage
- message to send- 抛出:
MailAuthenticationException
- in case of authentication failureMailSendException
- in case of failure when sending the messageMailException
- 另请参阅:
JavaMailSender.createMimeMessage()
send
public void send(MimeMessage... mimeMessages) throws MailException
从接口复制的说明:JavaMailSender
Send the given array of JavaMail MIME messages in batch. The messages need to have been created withJavaMailSender.createMimeMessage()
.- 指定者:
send
在接口中JavaMailSender
- 参数:
mimeMessages
- messages to send- 抛出:
MailAuthenticationException
- in case of authentication failureMailSendException
- in case of failure when sending a messageMailException
- 另请参阅:
JavaMailSender.createMimeMessage()
send
public void send(MimeMessagePreparator mimeMessagePreparator) throws MailException
从接口复制的说明:JavaMailSender
Send the JavaMail MIME message prepared by the given MimeMessagePreparator.Alternative way to prepare MimeMessage instances, instead of
JavaMailSender.createMimeMessage()
andJavaMailSender.send(MimeMessage)
calls. Takes care of proper exception conversion.- 指定者:
send
在接口中JavaMailSender
- 参数:
mimeMessagePreparator
- the preparator to use- 抛出:
MailPreparationException
- in case of failure when preparing the messageMailParseException
- in case of failure when parsing the messageMailAuthenticationException
- in case of authentication failureMailSendException
- in case of failure when sending the messageMailException
send
public void send(MimeMessagePreparator... mimeMessagePreparators) throws MailException
从接口复制的说明:JavaMailSender
Send the JavaMail MIME messages prepared by the given MimeMessagePreparators.Alternative way to prepare MimeMessage instances, instead of
JavaMailSender.createMimeMessage()
andJavaMailSender.send(MimeMessage[])
calls. Takes care of proper exception conversion.- 指定者:
send
在接口中JavaMailSender
- 参数:
mimeMessagePreparators
- the preparator to use- 抛出:
MailPreparationException
- in case of failure when preparing a messageMailParseException
- in case of failure when parsing a messageMailAuthenticationException
- in case of authentication failureMailSendException
- in case of failure when sending a messageMailException
testConnection
public void testConnection() throws MessagingException
Validate that this instance can connect to the server that it is configured for. Throws aMessagingException
if the connection attempt failed.
doSend
protected void doSend(MimeMessage[] mimeMessages, Object[] originalMessages) throws MailException
Actually send the given array of MimeMessages via JavaMail.- 参数:
mimeMessages
- the 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 failureMailSendException
- in case of failure when sending a messageMailException
connectTransport
protected Transport connectTransport() throws MessagingException
Obtain and connect a Transport from the underlying JavaMail Session, passing in the specified host, port, username, and password.- 返回:
- the connected Transport object
- 抛出:
MessagingException
- if the connect attempt failed- 从以下版本开始:
- 4.1.2
- 另请参阅:
getTransport(javax.mail.Session)
,getHost()
,getPort()
,getUsername()
,getPassword()
getTransport
protected Transport getTransport(Session session) throws NoSuchProviderException
Obtain a Transport object from the given JavaMail Session, using the configured protocol.Can be overridden in subclasses, e.g. to return a mock Transport object.