org.springframework.batch.item.mail

## Class SimpleMailMessageItemWriter

- java.lang.Object
- - org.springframework.batch.item.mail.SimpleMailMessageItemWriter

- All Implemented Interfaces:
    ItemWriter<org.springframework.mail.SimpleMailMessage>, org.springframework.beans.factory.InitializingBean

      public class SimpleMailMessageItemWriter
      extends java.lang.Object
      implements ItemWriter<org.springframework.mail.SimpleMailMessage>, org.springframework.beans.factory.InitializingBean

  A simple `ItemWriter` that can send mail messages. If it fails there is no guarantee about which of the messages were sent, but the ones that failed can be picked up in the error handler. Because the mail protocol is not transactional, failures should be dealt with here if possible rather than allowing them to be rethrown (which is the default).

  Delegates the actual sending of messages to a `MailSender`, using the batch method `MailSender.send(SimpleMailMessage[])`, which normally uses a single server connection for the whole batch (depending on the implementation). The efficiency of for large volumes of messages (repeated calls to the item writer) might be improved by the use of a special `MailSender` that caches connections to the server in between calls.

  Stateless, so automatically restartable.

  Since:
    2.1
  Author:
    Dave Syer

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SimpleMailMessageItemWriter()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterPropertiesSet()` Check mandatory properties (mailSender).
    `void` | `setMailErrorHandler(MailErrorHandler mailErrorHandler)` The handler for failed messages.
    `void` | `setMailSender(org.springframework.mail.MailSender mailSender)` A `MailSender` to be used to send messages in `write(List)`.
    `void` | `write(java.util.List<? extends org.springframework.mail.SimpleMailMessage> items)` Process the supplied data element.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SimpleMailMessageItemWriter

          public SimpleMailMessageItemWriter()

  - ### Method Detail

    - #### setMailSender

          public void setMailSender(org.springframework.mail.MailSender mailSender)

      A `MailSender` to be used to send messages in `write(List)`.
      Parameters:
        `mailSender` -

    - #### setMailErrorHandler

          public void setMailErrorHandler(MailErrorHandler mailErrorHandler)

      The handler for failed messages. Defaults to a `DefaultMailErrorHandler`.
      Parameters:
        `mailErrorHandler` - the mail error handler to set

    - #### afterPropertiesSet

          public void afterPropertiesSet()
                                  throws java.lang.IllegalStateException

      Check mandatory properties (mailSender).
      Specified by:
        `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
      Throws:
        `java.lang.IllegalStateException` - if the mandatory properties are not set
      See Also:
        `InitializingBean.afterPropertiesSet()`

    - #### write

          public void write(java.util.List<? extends org.springframework.mail.SimpleMailMessage> items)
                     throws org.springframework.mail.MailException

      Description copied from interface: `ItemWriter`
      Process the supplied data element. Will not be called with any null items in normal operation.
      Specified by:
        `write` in interface `ItemWriter<org.springframework.mail.SimpleMailMessage>`
      Parameters:
        `items` - the items to send
      Throws:
        `org.springframework.mail.MailException`
      See Also:
        `ItemWriter.write(List)`