Interface JavaMailSender

All Superinterfaces:
All Known Implementing Classes:

public interface JavaMailSender extends MailSender
Extended MailSender interface for JavaMail, supporting MIME messages both as direct arguments and through preparation callbacks. Typically used in conjunction with the MimeMessageHelper class for convenient creation of JavaMail MimeMessages, including attachments etc.

Clients should talk to the mail sender through this interface if they need mail functionality beyond SimpleMailMessage. The production implementation is JavaMailSenderImpl; for testing, mocks can be created based on this interface. Clients will typically receive the JavaMailSender reference through dependency injection.

The recommended way of using this interface is the MimeMessagePreparator mechanism, possibly using a MimeMessageHelper for populating the message. See MimeMessageHelper's javadoc for an example.

The entire JavaMail Session management is abstracted by the JavaMailSender. Client code should not deal with a Session in any way, rather leave the entire JavaMail configuration and resource handling to the JavaMailSender implementation. This also increases testability.

A JavaMailSender client is not as easy to test as a plain MailSender client, but still straightforward compared to traditional JavaMail code: Just let createMimeMessage() return a plain MimeMessage created with a Session.getInstance(new Properties()) call, and check the passed-in messages in your mock implementations of the various send methods.

Juergen Hoeller
See Also:
  • Method Summary

    Modifier and Type
    Create a new JavaMail MimeMessage for the underlying JavaMail Session of this sender.
    Create a new JavaMail MimeMessage for the underlying JavaMail Session of this sender, using the given input stream as the message source.
    default void
    send(MimeMessage mimeMessage)
    Send the given JavaMail MIME message.
    send(MimeMessage... mimeMessages)
    Send the given array of JavaMail MIME messages in batch.
    default void
    send(MimeMessagePreparator mimeMessagePreparator)
    Send the JavaMail MIME message prepared by the given MimeMessagePreparator.
    default void
    send(MimeMessagePreparator... mimeMessagePreparators)
    Send the JavaMail MIME messages prepared by the given MimeMessagePreparators.

    Methods inherited from interface org.springframework.mail.MailSender

    send, send