Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| The Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.mail.javamail
Class JavaMailSenderImpl

    java.lang.Object
      org.springframework.mail.javamail.JavaMailSenderImpl

All Implemented Interfaces:
  JavaMailSender, MailSender

    public class JavaMailSenderImpl

extends Object
implements JavaMailSender

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 `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`.

Since:
  10.09.2003
Author:
  Dmitriy Kopylenko, Juergen Hoeller
See Also:
  `MimeMessage`, `Session`, `setSession(javax.mail.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 String` | `DEFAULT_PROTOCOL` The default protocol: 'smtp'.
`protected Log` | `logger` Logger available to subclasses

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(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 for `MimeMessages`, or `null` if none.
`FileTypeMap` | `getDefaultFileTypeMap()` Return the default Java Activation `FileTypeMap` for `MimeMessages`, or `null` if none.
`String` | `getHost()` Return the mail server host.
`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 JavaMail `Session`.
`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 for `MimeMessages` created by this instance.
`void` | `setDefaultFileTypeMap(FileTypeMap defaultFileTypeMap)` Set the default Java Activation `FileTypeMap` to use for `MimeMessages` 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 the `Session`.
`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 JavaMail `Session`, possibly pulled from JNDI.
`void` | `setUsername(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

### DEFAULT_PROTOCOL

    public static final String DEFAULT_PROTOCOL

  The default protocol: 'smtp'.

  See Also:
    Constant Field Values

### DEFAULT_PORT

    public static final int DEFAULT_PORT

  The default port: -1.

  See Also:
    Constant Field Values

### logger

    protected final Log logger

  Logger available to subclasses

Constructor Detail

### JavaMailSenderImpl

    public JavaMailSenderImpl()

  Create a new instance of the `JavaMailSenderImpl` class.

  Initializes the `"defaultFileTypeMap"` property with a default `ConfigurableMimeFileTypeMap`.

Method Detail

### setJavaMailProperties

    public void setJavaMailProperties(Properties javaMailProperties)

  Set JavaMail properties for the `Session`.

  A new `Session` will be created with those properties. Use either this method or `setSession(javax.mail.Session)`, but not both.

  Non-default properties in this instance will override given JavaMail properties.

### setSession

    public void setSession(Session session)

  Set the JavaMail `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`.

  See Also:
    `setJavaMailProperties(java.util.Properties)`

### getSession

    public Session getSession()

  Return the JavaMail `Session`.

### 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.

### getHost

    public String getHost()

  Return the mail server host.

### 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 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)`.

  See Also:
    `setSession(javax.mail.Session)`, `setPassword(java.lang.String)`

### 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 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)`.

  See Also:
    `setSession(javax.mail.Session)`, `setUsername(java.lang.String)`

### 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 for `MimeMessages` created by this instance.

  Such an encoding will be auto-detected by `MimeMessageHelper`.

### getDefaultEncoding

    public String getDefaultEncoding()

  Return the default encoding for `MimeMessages`, or `null` if none.

### setDefaultFileTypeMap

    public void setDefaultFileTypeMap(FileTypeMap defaultFileTypeMap)

  Set the default Java Activation `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).

  See Also:
    `MimeMessageHelper.setFileTypeMap(javax.activation.FileTypeMap)`

### getDefaultFileTypeMap

    public FileTypeMap getDefaultFileTypeMap()

  Return the default Java Activation `FileTypeMap` for `MimeMessages`, or `null` if none.

### send

    public void send(SimpleMailMessage simpleMessage)
              throws MailException

  Description copied from interface: `MailSender`
  Send the given simple mail message.

  Specified by:
    `send` in interface `MailSender`
  Parameters:
    `simpleMessage` - the message to send
  Throws:
    `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`

### send

    public void send(SimpleMailMessage[] simpleMessages)
              throws MailException

  Description copied from interface: `MailSender`
  Send the given array of simple mail messages in batch.

  Specified by:
    `send` in interface `MailSender`
  Parameters:
    `simpleMessages` - the messages to send
  Throws:
    `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`

### 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 by `MimeMessageHelper`, which will use the carried encoding and FileTypeMap unless explicitly overridden.

  Specified by:
    `createMimeMessage` in interface `JavaMailSender`
  Returns:
    the new MimeMessage instance
  See Also:
    `setDefaultEncoding(java.lang.String)`, `setDefaultFileTypeMap(javax.activation.FileTypeMap)`

### createMimeMessage

    public MimeMessage createMimeMessage(InputStream contentStream)
                                  throws MailException

  Description copied from interface: `JavaMailSender`
  Create a new JavaMail MimeMessage for the underlying JavaMail Session of this sender, using the given input stream as the message source.

  Specified by:
    `createMimeMessage` in interface `JavaMailSender`
  Parameters:
    `contentStream` - the raw MIME input stream for the message
  Returns:
    the new MimeMessage instance
  Throws:
    `MailParseException` - in case of message creation failure
    `MailException`

### send

    public void send(MimeMessage mimeMessage)
              throws MailException

  Description copied from interface: `JavaMailSender`
  Send the given JavaMail MIME message. The message needs to have been created with `JavaMailSender.createMimeMessage()`.

  Specified by:
    `send` in interface `JavaMailSender`
  Parameters:
    `mimeMessage` - message to send
  Throws:
    `MailAuthenticationException` - in case of authentication failure
    `MailSendException` - in case of failure when sending the message
    `MailException`
  See Also:
    `JavaMailSender.createMimeMessage()`

### send

    public void send(MimeMessage[] mimeMessages)
              throws MailException

  Description copied from interface: `JavaMailSender`
  Send the given array of JavaMail MIME messages in batch. The messages need to have been created with `JavaMailSender.createMimeMessage()`.

  Specified by:
    `send` in interface `JavaMailSender`
  Parameters:
    `mimeMessages` - messages to send
  Throws:
    `MailAuthenticationException` - in case of authentication failure
    `MailSendException` - in case of failure when sending a message
    `MailException`
  See Also:
    `JavaMailSender.createMimeMessage()`

### send

    public void send(MimeMessagePreparator mimeMessagePreparator)
              throws MailException

  Description copied from interface: `JavaMailSender`
  Send the JavaMail MIME message prepared by the given MimeMessagePreparator.

  Alternative way to prepare MimeMessage instances, instead of `JavaMailSender.createMimeMessage()` and `JavaMailSender.send(MimeMessage)` calls. Takes care of proper exception conversion.

  Specified by:
    `send` in interface `JavaMailSender`
  Parameters:
    `mimeMessagePreparator` - the preparator to use
  Throws:
    `MailPreparationException` - in case of failure when preparing the message
    `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`

### send

    public void send(MimeMessagePreparator[] mimeMessagePreparators)
              throws MailException

  Description copied from interface: `JavaMailSender`
  Send the JavaMail MIME messages prepared by the given MimeMessagePreparators.

  Alternative way to prepare MimeMessage instances, instead of `JavaMailSender.createMimeMessage()` and `JavaMailSender.send(MimeMessage[])` calls. Takes care of proper exception conversion.

  Specified by:
    `send` in interface `JavaMailSender`
  Parameters:
    `mimeMessagePreparators` - the preparator to use
  Throws:
    `MailPreparationException` - in case of failure when preparing a message
    `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`

### doSend

    protected void doSend(MimeMessage[] mimeMessages,
                          Object[] originalMessages)
                   throws MailException

  Actually send the given array of MimeMessages via JavaMail.

  Parameters:
    `mimeMessages` - MimeMessage objects to send
    `originalMessages` - corresponding original message objects that the MimeMessages have been created from (with same array length and indices as the "mimeMessages" array), if any
  Throws:
    `MailAuthenticationException` - in case of authentication failure
    `MailSendException` - in case of failure when sending a message
    `MailException`

### 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.

  Throws:
    `NoSuchProviderException`
  See Also:
    `Session.getTransport(String)`, `getProtocol()`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| The Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2007 The Spring Framework.