类 JavaMailSenderImpl

java.lang.Object
cn.taketoday.context.support.mail.javamail.JavaMailSenderImpl
所有已实现的接口:
JavaMailSender, MailSender

public class JavaMailSenderImpl extends Object implements JavaMailSender
Production implementation of the JavaMailSender interface, supporting both JavaMail MimeMessages and Framework 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.

从以下版本开始:
4.0
作者:
Dmitriy Kopylenko, Juergen Hoeller, Harry Yang
另请参阅:
  • 字段概要

    字段
    修饰符和类型
    字段
    说明
    static final int
    The default port: -1.
    static final String
    The default protocol: 'smtp'.
  • 构造器概要

    构造器
    构造器
    说明
    Create a new instance of the JavaMailSenderImpl class.
  • 方法概要

    修饰符和类型
    方法
    说明
    protected jakarta.mail.Transport
    Obtain and connect a Transport from the underlying JavaMail Session, passing in the specified host, port, username, and password.
    jakarta.mail.internet.MimeMessage
    This implementation creates a SmartMimeMessage, holding the specified default encoding and default FileTypeMap.
    jakarta.mail.internet.MimeMessage
    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(jakarta.mail.internet.MimeMessage[] mimeMessages, Object[] originalMessages)
    Actually send the given array of MimeMessages via JavaMail.
    Return the default encoding for MimeMessages, or null if none.
    jakarta.activation.FileTypeMap
    Return the default Java Activation FileTypeMap for MimeMessages, or null if none.
    Return the mail server host.
    Allow Map access to the JavaMail properties of this sender, with the option to add or override specific entries.
    Return the password for the account at the mail host.
    int
    Return the mail server port.
    Return the mail protocol.
    jakarta.mail.Session
    Return the JavaMail Session, lazily initializing it if hasn't been specified explicitly.
    protected jakarta.mail.Transport
    getTransport(jakarta.mail.Session session)
    Obtain a Transport object from the given JavaMail Session, using the configured protocol.
    Return the username for the account at the mail host.
    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
    send(jakarta.mail.internet.MimeMessage mimeMessage)
    Send the given JavaMail MIME message.
    void
    send(jakarta.mail.internet.MimeMessage... mimeMessages)
    Send the given array of JavaMail MIME messages in batch.
    void
    setDefaultEncoding(String defaultEncoding)
    Set the default encoding to use for MimeMessages created by this instance.
    void
    setDefaultFileTypeMap(jakarta.activation.FileTypeMap defaultFileTypeMap)
    Set the default Java Activation FileTypeMap to use for MimeMessages created by this instance.
    void
    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(jakarta.mail.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.
    void
    Validate that this instance can connect to the server that it is configured for.

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 字段详细资料

    • DEFAULT_PROTOCOL

      public static final String DEFAULT_PROTOCOL
      The default protocol: 'smtp'.
      另请参阅:
    • DEFAULT_PORT

      public static final int DEFAULT_PORT
      The default port: -1.
      另请参阅:
  • 构造器详细资料

  • 方法详细资料

    • 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(jakarta.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(jakarta.mail.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.

      另请参阅:
    • getSession

      public jakarta.mail.Session getSession()
      Return the JavaMail Session, lazily initializing it if hasn't been specified explicitly.
    • setProtocol

      public void setProtocol(@Nullable String protocol)
      Set the mail protocol. Default is "smtp".
    • getProtocol

      @Nullable public String getProtocol()
      Return the mail protocol.
    • setHost

      public void setHost(@Nullable String host)
      Set the mail server host, typically an SMTP host.

      Default is the default host of the underlying JavaMail Session.

    • getHost

      @Nullable 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(@Nullable 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).

      另请参阅:
    • getUsername

      @Nullable public String getUsername()
      Return the username for the account at the mail host.
    • setPassword

      public void setPassword(@Nullable 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).

      另请参阅:
    • getPassword

      @Nullable public String getPassword()
      Return the password for the account at the mail host.
    • setDefaultEncoding

      public void setDefaultEncoding(@Nullable String defaultEncoding)
      Set the default encoding to use for MimeMessages created by this instance.

      Such an encoding will be auto-detected by MimeMessageHelper.

    • getDefaultEncoding

      @Nullable public String getDefaultEncoding()
      Return the default encoding for MimeMessages, or null if none.
    • setDefaultFileTypeMap

      public void setDefaultFileTypeMap(@Nullable jakarta.activation.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 Framework'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 Framework jar).

      另请参阅:
    • getDefaultFileTypeMap

      @Nullable public jakarta.activation.FileTypeMap getDefaultFileTypeMap()
      Return the default Java Activation FileTypeMap for MimeMessages, or null if none.
    • 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 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
      从接口复制的说明: 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 message
      MailAuthenticationException - in case of authentication failure
      MailSendException - in case of failure when sending a message
      MailException
    • createMimeMessage

      public jakarta.mail.internet.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.
      指定者:
      createMimeMessage 在接口中 JavaMailSender
      返回:
      the new MimeMessage instance
      另请参阅:
    • createMimeMessage

      public jakarta.mail.internet.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 failure
      MailException
    • send

      public void send(jakarta.mail.internet.MimeMessage mimeMessage) throws MailException
      从接口复制的说明: JavaMailSender
      Send the given JavaMail MIME message. The message needs to have been created with JavaMailSender.createMimeMessage().
      指定者:
      send 在接口中 JavaMailSender
      参数:
      mimeMessage - message to send
      抛出:
      MailAuthenticationException - in case of authentication failure
      MailSendException - in case of failure when sending the message
      MailException
      另请参阅:
    • send

      public void send(jakarta.mail.internet.MimeMessage... mimeMessages) throws MailException
      从接口复制的说明: JavaMailSender
      Send the given array of JavaMail MIME messages in batch. The messages need to have been created with JavaMailSender.createMimeMessage().
      指定者:
      send 在接口中 JavaMailSender
      参数:
      mimeMessages - messages to send
      抛出:
      MailAuthenticationException - in case of authentication failure
      MailSendException - in case of failure when sending a message
      MailException
      另请参阅:
    • 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() and JavaMailSender.send(MimeMessage) calls. Takes care of proper exception conversion.

      指定者:
      send 在接口中 JavaMailSender
      参数:
      mimeMessagePreparator - the preparator to use
      抛出:
      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
      从接口复制的说明: 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.

      指定者:
      send 在接口中 JavaMailSender
      参数:
      mimeMessagePreparators - the preparator to use
      抛出:
      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
    • testConnection

      public void testConnection() throws jakarta.mail.MessagingException
      Validate that this instance can connect to the server that it is configured for. Throws a MessagingException if the connection attempt failed.
      抛出:
      jakarta.mail.MessagingException
    • doSend

      protected void doSend(jakarta.mail.internet.MimeMessage[] mimeMessages, @Nullable Object[] originalMessages) throws MailException
      Actually send the given array of MimeMessages via JavaMail.
      参数:
      mimeMessages - the 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
      抛出:
      MailAuthenticationException - in case of authentication failure
      MailSendException - in case of failure when sending a message
      MailException
    • connectTransport

      protected jakarta.mail.Transport connectTransport() throws jakarta.mail.MessagingException
      Obtain and connect a Transport from the underlying JavaMail Session, passing in the specified host, port, username, and password.
      返回:
      the connected Transport object
      抛出:
      jakarta.mail.MessagingException - if the connect attempt failed
      从以下版本开始:
      4.0
      另请参阅:
    • getTransport

      protected jakarta.mail.Transport getTransport(jakarta.mail.Session session) throws jakarta.mail.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.

      抛出:
      jakarta.mail.NoSuchProviderException
      另请参阅: