Class MailConfig


public class MailConfig extends NetClientOptions
represents the configuration of a mail service with mail server hostname, port, security options, login options and login/password
Author:
Alexander Lehmann
  • Field Details

    • DEFAULT_LOGIN

      public static final LoginOption DEFAULT_LOGIN
    • DEFAULT_TLS

      public static final StartTLSOptions DEFAULT_TLS
    • DEFAULT_PORT

      public static final int DEFAULT_PORT
      See Also:
    • DEFAULT_HOST

      public static final String DEFAULT_HOST
      See Also:
    • DEFAULT_MAX_POOL_SIZE

      public static final int DEFAULT_MAX_POOL_SIZE
      See Also:
    • DEFAULT_ALLOW_RCPT_ERRORS

      public static final boolean DEFAULT_ALLOW_RCPT_ERRORS
      See Also:
    • DEFAULT_KEEP_ALIVE

      public static final boolean DEFAULT_KEEP_ALIVE
      See Also:
    • DEFAULT_DISABLE_ESMTP

      public static final boolean DEFAULT_DISABLE_ESMTP
      See Also:
    • DEFAULT_USER_AGENT

      public static final String DEFAULT_USER_AGENT
      See Also:
    • DEFAULT_ENABLE_PIPELINING

      public static final boolean DEFAULT_ENABLE_PIPELINING
      See Also:
    • DEFAULT_MULTI_PART_ONLY

      public static final boolean DEFAULT_MULTI_PART_ONLY
      See Also:
    • DEFAULT_MAILS_PER_CONNECTION

      public static final long DEFAULT_MAILS_PER_CONNECTION
      See Also:
    • DEFAULT_POOL_CLEANER_PERIOD

      public static final int DEFAULT_POOL_CLEANER_PERIOD
      Default pool cleaner period = 1000 ms (1 second)
      See Also:
    • DEFAULT_POOL_CLEANER_PERIOD_TIMEOUT_UNIT

      public static final TimeUnit DEFAULT_POOL_CLEANER_PERIOD_TIMEOUT_UNIT
    • DEFAULT_KEEP_ALIVE_TIMEOUT

      public static final int DEFAULT_KEEP_ALIVE_TIMEOUT
      The default keep alive timeout for SMTP connection = 5 minutes
      See Also:
    • DEFAULT_KEEP_ALIVE_TIMEOUT_UNIT

      public static final TimeUnit DEFAULT_KEEP_ALIVE_TIMEOUT_UNIT
  • Constructor Details

    • MailConfig

      public MailConfig()
      construct a config object with default options
    • MailConfig

      public MailConfig(String hostname)
      construct a config object with hostname and default options
      Parameters:
      hostname - the hostname of the mail server
    • MailConfig

      public MailConfig(String hostname, int port)
      construct a config object with hostname/port and default options
      Parameters:
      hostname - the hostname of the mail server
      port - the port of the mail server
    • MailConfig

      public MailConfig(String hostname, int port, StartTLSOptions starttls, LoginOption login)
      construct a config object with hostname/port and security and login options
      Parameters:
      hostname - the hostname of the mail server
      port - the port of the mail server
      starttls - whether to use TLS or not
      login - whether to use Login or not
    • MailConfig

      public MailConfig(MailConfig other)
      copy config object from another MailConfig object
      Parameters:
      other - the object to be copied
    • MailConfig

      public MailConfig(JsonObject config)
      construct config object from Json representation
      Parameters:
      config - the config to copy
  • Method Details

    • setSendBufferSize

      public MailConfig setSendBufferSize(int sendBufferSize)
      Description copied from class: NetworkOptions
      Set the TCP send buffer size
      Overrides:
      setSendBufferSize in class NetClientOptions
      Parameters:
      sendBufferSize - the buffers size, in bytes
      Returns:
      a reference to this, so the API can be used fluently
    • setReceiveBufferSize

      public MailConfig setReceiveBufferSize(int receiveBufferSize)
      Description copied from class: NetworkOptions
      Set the TCP receive buffer size
      Overrides:
      setReceiveBufferSize in class NetClientOptions
      Parameters:
      receiveBufferSize - the buffers size, in bytes
      Returns:
      a reference to this, so the API can be used fluently
    • setReuseAddress

      public MailConfig setReuseAddress(boolean reuseAddress)
      Description copied from class: NetworkOptions
      Set the value of reuse address
      Overrides:
      setReuseAddress in class NetClientOptions
      Parameters:
      reuseAddress - the value of reuse address
      Returns:
      a reference to this, so the API can be used fluently
    • setReusePort

      public MailConfig setReusePort(boolean reusePort)
      Description copied from class: NetworkOptions
      Set the value of reuse port.

      This is only supported by native transports.

      Overrides:
      setReusePort in class NetClientOptions
      Parameters:
      reusePort - the value of reuse port
      Returns:
      a reference to this, so the API can be used fluently
    • setTrafficClass

      public MailConfig setTrafficClass(int trafficClass)
      Description copied from class: NetworkOptions
      Set the value of traffic class
      Overrides:
      setTrafficClass in class NetClientOptions
      Parameters:
      trafficClass - the value of traffic class
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpNoDelay

      public MailConfig setTcpNoDelay(boolean tcpNoDelay)
      Description copied from class: TCPSSLOptions
      Set whether TCP no delay is enabled
      Overrides:
      setTcpNoDelay in class NetClientOptions
      Parameters:
      tcpNoDelay - true if TCP no delay is enabled (Nagle disabled)
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpKeepAlive

      public MailConfig setTcpKeepAlive(boolean tcpKeepAlive)
      Description copied from class: TCPSSLOptions
      Set whether TCP keep alive is enabled
      Overrides:
      setTcpKeepAlive in class NetClientOptions
      Parameters:
      tcpKeepAlive - true if TCP keep alive is enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setSoLinger

      public MailConfig setSoLinger(int soLinger)
      Description copied from class: TCPSSLOptions
      Set whether SO_linger keep alive is enabled
      Overrides:
      setSoLinger in class NetClientOptions
      Parameters:
      soLinger - true if SO_linger is enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setIdleTimeout

      public MailConfig setIdleTimeout(int idleTimeout)
      Description copied from class: TCPSSLOptions
      Set the idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is received nor sent within the timeout. If you want change default time unit, use TCPSSLOptions.setIdleTimeoutUnit(TimeUnit)
      Overrides:
      setIdleTimeout in class NetClientOptions
      Parameters:
      idleTimeout - the timeout
      Returns:
      a reference to this, so the API can be used fluently
    • setIdleTimeoutUnit

      public MailConfig setIdleTimeoutUnit(TimeUnit idleTimeoutUnit)
      Description copied from class: TCPSSLOptions
      Set the idle timeout unit. If not specified, default is seconds.
      Overrides:
      setIdleTimeoutUnit in class NetClientOptions
      Parameters:
      idleTimeoutUnit - specify time unit.
      Returns:
      a reference to this, so the API can be used fluently
    • setKeyCertOptions

      public MailConfig setKeyCertOptions(KeyCertOptions options)
      Description copied from class: TCPSSLOptions
      Set the key/cert options.
      Overrides:
      setKeyCertOptions in class NetClientOptions
      Parameters:
      options - the key store options
      Returns:
      a reference to this, so the API can be used fluently
    • setTrustOptions

      public MailConfig setTrustOptions(TrustOptions options)
      Description copied from class: TCPSSLOptions
      Set the trust options.
      Overrides:
      setTrustOptions in class NetClientOptions
      Parameters:
      options - the trust options
      Returns:
      a reference to this, so the API can be used fluently
    • addEnabledCipherSuite

      public MailConfig addEnabledCipherSuite(String suite)
      Description copied from class: TCPSSLOptions
      Add an enabled cipher suite, appended to the ordered suites.
      Overrides:
      addEnabledCipherSuite in class NetClientOptions
      Parameters:
      suite - the suite
      Returns:
      a reference to this, so the API can be used fluently
      See Also:
    • addEnabledSecureTransportProtocol

      public MailConfig addEnabledSecureTransportProtocol(String protocol)
      Description copied from class: TCPSSLOptions
      Add an enabled SSL/TLS protocols, appended to the ordered protocols.
      Overrides:
      addEnabledSecureTransportProtocol in class NetClientOptions
      Parameters:
      protocol - the SSL/TLS protocol to enable
      Returns:
      a reference to this, so the API can be used fluently
    • removeEnabledSecureTransportProtocol

      public MailConfig removeEnabledSecureTransportProtocol(String protocol)
      Description copied from class: TCPSSLOptions
      Removes an enabled SSL/TLS protocol from the ordered protocols.
      Overrides:
      removeEnabledSecureTransportProtocol in class NetClientOptions
      Parameters:
      protocol - the SSL/TLS protocol to disable
      Returns:
      a reference to this, so the API can be used fluently
    • setUseAlpn

      public MailConfig setUseAlpn(boolean useAlpn)
      Description copied from class: TCPSSLOptions
      Set the ALPN usage.
      Overrides:
      setUseAlpn in class NetClientOptions
      Parameters:
      useAlpn - true when Application-Layer Protocol Negotiation should be used
    • setSslEngineOptions

      public MailConfig setSslEngineOptions(SSLEngineOptions sslEngineOptions)
      Description copied from class: TCPSSLOptions
      Set to use SSL engine implementation to use.
      Overrides:
      setSslEngineOptions in class NetClientOptions
      Parameters:
      sslEngineOptions - the ssl engine to use
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpFastOpen

      public MailConfig setTcpFastOpen(boolean tcpFastOpen)
      Description copied from class: TCPSSLOptions
      Enable the TCP_FASTOPEN option - only with linux native transport.
      Overrides:
      setTcpFastOpen in class NetClientOptions
      Parameters:
      tcpFastOpen - the fast open value
    • setTcpCork

      public MailConfig setTcpCork(boolean tcpCork)
      Description copied from class: TCPSSLOptions
      Enable the TCP_CORK option - only with linux native transport.
      Overrides:
      setTcpCork in class NetClientOptions
      Parameters:
      tcpCork - the cork value
    • setTcpQuickAck

      public MailConfig setTcpQuickAck(boolean tcpQuickAck)
      Description copied from class: TCPSSLOptions
      Enable the TCP_QUICKACK option - only with linux native transport.
      Overrides:
      setTcpQuickAck in class NetClientOptions
      Parameters:
      tcpQuickAck - the quick ack value
    • addCrlPath

      public MailConfig addCrlPath(String crlPath) throws NullPointerException
      Description copied from class: TCPSSLOptions
      Add a CRL path
      Overrides:
      addCrlPath in class NetClientOptions
      Parameters:
      crlPath - the path
      Returns:
      a reference to this, so the API can be used fluently
      Throws:
      NullPointerException
    • addCrlValue

      public MailConfig addCrlValue(Buffer crlValue) throws NullPointerException
      Description copied from class: TCPSSLOptions
      Add a CRL value
      Overrides:
      addCrlValue in class NetClientOptions
      Parameters:
      crlValue - the value
      Returns:
      a reference to this, so the API can be used fluently
      Throws:
      NullPointerException
    • setConnectTimeout

      public MailConfig setConnectTimeout(int connectTimeout)
      Description copied from class: ClientOptionsBase
      Set the connect timeout
      Overrides:
      setConnectTimeout in class NetClientOptions
      Parameters:
      connectTimeout - connect timeout, in ms
      Returns:
      a reference to this, so the API can be used fluently
    • setMetricsName

      public MailConfig setMetricsName(String metricsName)
      Description copied from class: ClientOptionsBase
      Set the metrics name identifying the reported metrics, useful for grouping metrics with the same name.
      Overrides:
      setMetricsName in class NetClientOptions
      Parameters:
      metricsName - the metrics name
      Returns:
      a reference to this, so the API can be used fluently
    • setReconnectAttempts

      public MailConfig setReconnectAttempts(int attempts)
      Description copied from class: NetClientOptions
      Set the value of reconnect attempts
      Overrides:
      setReconnectAttempts in class NetClientOptions
      Parameters:
      attempts - the maximum number of reconnect attempts
      Returns:
      a reference to this, so the API can be used fluently
    • setReconnectInterval

      public MailConfig setReconnectInterval(long interval)
      Description copied from class: NetClientOptions
      Set the reconnect interval
      Overrides:
      setReconnectInterval in class NetClientOptions
      Parameters:
      interval - the reconnect interval in ms
      Returns:
      a reference to this, so the API can be used fluently
    • setHostnameVerificationAlgorithm

      public MailConfig setHostnameVerificationAlgorithm(String hostnameVerificationAlgorithm)
      Description copied from class: NetClientOptions
      Set the hostname verification algorithm interval To disable hostname verification, set hostnameVerificationAlgorithm to an empty String
      Overrides:
      setHostnameVerificationAlgorithm in class NetClientOptions
      Parameters:
      hostnameVerificationAlgorithm - should be HTTPS, LDAPS or an empty String
      Returns:
      a reference to this, so the API can be used fluently
    • setLogActivity

      public MailConfig setLogActivity(boolean logEnabled)
      Description copied from class: NetworkOptions
      Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
      Overrides:
      setLogActivity in class NetClientOptions
      Parameters:
      logEnabled - true for logging the network activity
      Returns:
      a reference to this, so the API can be used fluently
    • setProxyOptions

      public MailConfig setProxyOptions(ProxyOptions proxyOptions)
      Description copied from class: ClientOptionsBase
      Set proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.
      Overrides:
      setProxyOptions in class NetClientOptions
      Parameters:
      proxyOptions - proxy options object
      Returns:
      a reference to this, so the API can be used fluently
    • setLocalAddress

      public MailConfig setLocalAddress(String localAddress)
      Description copied from class: ClientOptionsBase
      Set the local interface to bind for network connections. When the local address is null, it will pick any local address, the default local address is null.
      Overrides:
      setLocalAddress in class NetClientOptions
      Parameters:
      localAddress - the local address
      Returns:
      a reference to this, so the API can be used fluently
    • setSslHandshakeTimeout

      public MailConfig setSslHandshakeTimeout(long sslHandshakeTimeout)
      Description copied from class: TCPSSLOptions
      Set the SSL handshake timeout, default time unit is seconds.
      Overrides:
      setSslHandshakeTimeout in class NetClientOptions
      Parameters:
      sslHandshakeTimeout - the SSL handshake timeout to set, in milliseconds
      Returns:
      a reference to this, so the API can be used fluently
    • setSslHandshakeTimeoutUnit

      public MailConfig setSslHandshakeTimeoutUnit(TimeUnit sslHandshakeTimeoutUnit)
      Description copied from class: TCPSSLOptions
      Set the SSL handshake timeout unit. If not specified, default is seconds.
      Overrides:
      setSslHandshakeTimeoutUnit in class NetClientOptions
      Parameters:
      sslHandshakeTimeoutUnit - specify time unit.
      Returns:
      a reference to this, so the API can be used fluently
    • getHostname

      public String getHostname()
      get the hostname of the mailserver
      Returns:
      hostname
    • setHostname

      public MailConfig setHostname(String hostname)
      Set the hostname of the smtp server.
      Parameters:
      hostname - the hostname (default is localhost)
      Returns:
      a reference to this, so the API can be used fluently
    • getPort

      public int getPort()
      get the port of the mailserver
      Returns:
      port
    • setPort

      public MailConfig setPort(int port)
      Set the port of the smtp server.
      Parameters:
      port - the port (default is 25)
      Returns:
      a reference to this, so the API can be used fluently
    • getStarttls

      public StartTLSOptions getStarttls()
      get security (TLS) options
      Returns:
      the security options
    • setStarttls

      public MailConfig setStarttls(StartTLSOptions starttls)
      Set the tls security mode for the connection.

      Either NONE, OPTIONAL or REQUIRED

      Parameters:
      starttls - (default is OPTIONAL)
      Returns:
      a reference to this, so the API can be used fluently
    • getLogin

      public LoginOption getLogin()
      get login options
      Returns:
      the login options
    • setLogin

      public MailConfig setLogin(LoginOption login)
      Set the login mode for the connection.

      Either DISABLED, NONE, REQUIRED or XOAUTH2

      Parameters:
      login - (default see DEFAULT_LOGIN)
      Returns:
      a reference to this, so the API can be used fluently
    • getUsername

      public String getUsername()
      get username
      Returns:
      username
    • setUsername

      public MailConfig setUsername(String username)
      Set the username for the login.
      Parameters:
      username - the username
      Returns:
      a reference to this, so the API can be used fluently
    • getPassword

      public String getPassword()
      get password
      Returns:
      password
    • setPassword

      public MailConfig setPassword(String password)
      Set the password for the login.
      Parameters:
      password - the password
      Returns:
      a reference to this, so the API can be used fluently
    • setSsl

      public MailConfig setSsl(boolean isSsl)
      Description copied from class: TCPSSLOptions
      Set whether SSL/TLS is enabled
      Overrides:
      setSsl in class NetClientOptions
      Parameters:
      isSsl - true if enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setEnabledSecureTransportProtocols

      public MailConfig setEnabledSecureTransportProtocols(Set<String> enabledSecureTransportProtocols)
      Description copied from class: TCPSSLOptions
      Sets the list of enabled SSL/TLS protocols.
      Overrides:
      setEnabledSecureTransportProtocols in class NetClientOptions
      Parameters:
      enabledSecureTransportProtocols - the SSL/TLS protocols to enable
      Returns:
      a reference to this, so the API can be used fluently
    • setTrustAll

      public MailConfig setTrustAll(boolean trustAll)
      Description copied from class: ClientOptionsBase
      Set whether all server certificates should be trusted
      Overrides:
      setTrustAll in class NetClientOptions
      Parameters:
      trustAll - true if all should be trusted
      Returns:
      a reference to this, so the API can be used fluently
    • getAuthMethods

      public String getAuthMethods()
      get string of allowed auth methods, if set only these methods will be used if the server supports them. If null or empty all supported methods may be used
      Returns:
      the authMethods
    • setAuthMethods

      public MailConfig setAuthMethods(String authMethods)
      set string of allowed auth methods. if set only these methods will be used if the server supports them. If null or empty all supported methods may be used
      Parameters:
      authMethods - the authMethods to set
      Returns:
      a reference to this, so the API can be used fluently
    • getOwnHostname

      public String getOwnHostname()
      get the hostname to be used for HELO/EHLO and the Message-ID
      Returns:
      my own hostname
    • setOwnHostname

      public MailConfig setOwnHostname(String ownHostname)
      set the hostname to be used for HELO/EHLO and the Message-ID
      Parameters:
      ownHostname - my own hostname to set
      Returns:
      a reference to this, so the API can be used fluently
    • getMaxPoolSize

      public int getMaxPoolSize()
      get the max allowed number of open connections to the mailserver if not set the default is 10
      Returns:
      max pool size value
    • setMaxPoolSize

      public MailConfig setMaxPoolSize(int maxPoolSize)
      set the max allowed number of open connections to the mail server if not set the default is 10
      Returns:
      this to be able to use the object fluently
    • isKeepAlive

      public boolean isKeepAlive()
      get if connection pool is enabled default is true

      if the connection pooling is disabled, the max number of sockets is enforced nevertheless

      Returns:
      keep alive value
    • setKeepAlive

      public MailConfig setKeepAlive(boolean keepAlive)
      set if connection pool is enabled default is true

      if the connection pooling is disabled, the max number of sockets is enforced nevertheless

      Returns:
      this to be able to use the object fluently
    • isAllowRcptErrors

      public boolean isAllowRcptErrors()
      get if sending allows rcpt errors (default is false)

      if true, the mail will be sent to the recipients that the server accepted, if any

      Returns:
      the allowRcptErrors
    • setAllowRcptErrors

      public MailConfig setAllowRcptErrors(boolean allowRcptErrors)
      set if sending allows rcpt errors

      if true, the mail will be sent to the recipients that the server accepted, if any

      Parameters:
      allowRcptErrors - the allowRcptErrors to set (default is false)
      Returns:
      this to be able to use the object fluently
    • isDisableEsmtp

      public boolean isDisableEsmtp()
      get if ESMTP should be tried as first command (EHLO) (default is true)

      rfc 1869 states that clients should always attempt EHLO as first command to determine if ESMTP is supported, if this returns an error code, HELO is tried to use old SMTP. If there is a server that does not support EHLO and does not give an error code back, the connection should be closed and retried with HELO. We do not do that and rather support turning off ESMTP with a setting. The odds of this actually happening are very small since the client will not connect to arbitrary smtp hosts on the internet. Since the client knows that is connects to a host that doesn't support ESMTP/EHLO in that way, the property has to be set to false.

      Returns:
      the disableEsmtp
    • setDisableEsmtp

      public MailConfig setDisableEsmtp(boolean disableEsmtp)
      set if ESMTP should be tried as first command (EHLO)

      rfc 1869 states that clients should always attempt EHLO as first command to determine if ESMTP is supported, if this returns an error code, HELO is tried to use old SMTP. If there is a server that does not support EHLO and does not give an error code back, the connection should be closed and retried with HELO. We do not do that and rather support turning off ESMTP with a setting. The odds of this actually happening are very small since the client will not connect to arbitrary smtp hosts on the internet. Since the client knows that is connects to a host that doesn't support ESMTP/EHLO in that way, the property has to be set to false.

      Parameters:
      disableEsmtp - the disableEsmtp to set (default is true)
      Returns:
      this to be able to use the object fluently
    • getUserAgent

      public String getUserAgent()
      Gets the Mail User Agent(MUA) name that will be used to generate boundary and message id.
      Returns:
      the Mail User Agent(MUA) name used to generate boundary and message id
    • setUserAgent

      public MailConfig setUserAgent(String userAgent)
      Sets the Mail User Agent(MUA) name.

      It is used to generate the boundary in case of MultiPart email and the Message-ID. If null is set, DEFAULT_USER_AGENT is used.

      Parameters:
      userAgent - the Mail User Agent(MUA) name used to generate boundary and message id length of userAgent must be smaller than 40 so that the generated boundary has no longer 70 characters.
      Returns:
      this to be able to use the object fluently
    • isEnableDKIM

      public boolean isEnableDKIM()
      Is DKIM enabled, defaults to false.
      Returns:
      enableDKIM
    • setEnableDKIM

      public MailConfig setEnableDKIM(boolean enableDKIM)
      Sets true to enable DKIM Signatures, sets false to disable it.

      This is used most for temporary disable DKIM without removing DKIM opations from current config.

      Parameters:
      enableDKIM - if DKIM Singature should be enabled
      Returns:
      this to be able to use the object fluently
    • getDKIMSignOptions

      public List<DKIMSignOptions> getDKIMSignOptions()
      Gets the DKIM options.
      Returns:
      dkimSignOptions
    • addDKIMSignOption

      public MailConfig addDKIMSignOption(DKIMSignOptions dkimSignOptions)
      Adds a DKIMSignOptions.
      Parameters:
      dkimSignOptions - the DKIMSignOptions
      Returns:
      this to be able to use the object fluently
    • setDKIMSignOptions

      public MailConfig setDKIMSignOptions(List<DKIMSignOptions> dkimSignOptions)
      Sets DKIMSignOptions.
      Parameters:
      dkimSignOptions - the DKIM options
      Returns:
      this to be able to use the object fluently
    • setDKIMSignOption

      public MailConfig setDKIMSignOption(DKIMSignOptions dkimSignOptions)
      Sets one DKIMSignOptions for convenient.
      Parameters:
      dkimSignOptions - the DKIM options
      Returns:
      this to be able to use the object fluently
    • getDKIMSignOption

      public DKIMSignOptions getDKIMSignOption()
      Gets the DKIM options.
      Returns:
      dkimSignOptions of the first one or null if nothing specified yet.
    • isPipelining

      public boolean isPipelining()
      Is the pipelining will be used if SMTP server supports it. Default to true.
      Returns:
      if enable pipelining capability if SMTP server supports it.
    • setPipelining

      public MailConfig setPipelining(boolean pipelining)
      Sets to enable/disable the pipelining capability if SMTP server supports it.
      Parameters:
      pipelining - enable pipelining or not
      Returns:
      this to be able to use the object fluently
    • isMultiPartOnly

      public boolean isMultiPartOnly()
      Should the mail message be always encoded as multipart.
      Returns:
      if the mail message will be encoded as multipart only.
    • setMultiPartOnly

      public MailConfig setMultiPartOnly(boolean multiPartOnly)
      Sets to encode multipart only or not. When sets to true, the mail message will be encoded as multipart even for simple mails without attachments, see https://github.com/vert-x3/vertx-mail-client/issues/161.
      Parameters:
      multiPartOnly - encoded as multipart only or not, default to false.
      Returns:
      this to be able to use the object fluently
    • getPoolCleanerPeriod

      public int getPoolCleanerPeriod()
      Returns:
      the connection pool cleaner period in ms.
    • setPoolCleanerPeriod

      public MailConfig setPoolCleanerPeriod(int poolCleanerPeriod)
      Set the connection pool cleaner period, defaults in milli seconds, a non positive value disables expiration checks and connections will remain in the pool until they are closed.
      Parameters:
      poolCleanerPeriod - the pool cleaner period
      Returns:
      a reference to this, so the API can be used fluently
    • getKeepAliveTimeout

      public int getKeepAliveTimeout()
      Returns:
      the keep alive timeout value in seconds for SMTP connections
    • setKeepAliveTimeout

      public MailConfig setKeepAliveTimeout(int keepAliveTimeout)
      Set the keep alive timeout for SMTP connection, Defaults in seconds.

      This value determines how long a connection remains unused in the pool before being evicted and closed.

      A timeout of 0 means there is no timeout.

      Parameters:
      keepAliveTimeout - the timeout, in seconds
      Returns:
      a reference to this, so the API can be used fluently
    • getPoolCleanerPeriodUnit

      public TimeUnit getPoolCleanerPeriodUnit()
      Gets the TimeUnit of pool cleaning period. Defaults to TimeUnit.MILLISECONDS
      Returns:
      the TimeUnit of the pool cleaning period.
    • setPoolCleanerPeriodUnit

      public MailConfig setPoolCleanerPeriodUnit(TimeUnit poolCleanerPeriodUnit)
      Sets the TimeUnit of pool cleaning period.
      Parameters:
      poolCleanerPeriodUnit - the TimeUnit of the pool cleaning period.
      Returns:
      a reference to this, so the API can be used fluently
    • getKeepAliveTimeoutUnit

      public TimeUnit getKeepAliveTimeoutUnit()
      Gets the TimeUnit of keeping the connections alive timeout. Defaults to TimeUnit.SECONDS
      Returns:
      the TimeUnit of keeping the connections alive timeout
    • setKeepAliveTimeoutUnit

      public MailConfig setKeepAliveTimeoutUnit(TimeUnit keepAliveTimeoutUnit)
      Sets TimeUnit of keeping connections in the pool alive.
      Parameters:
      keepAliveTimeoutUnit - the TimeUnit of keeping the connections alive timeout
      Returns:
      a reference to this, so the API can be used fluently
    • getNtDomain

      public String getNtDomain()
      Domain used on NTLM authentication.
      Returns:
      the domain name used on NTLM authentication
    • setNtDomain

      public MailConfig setNtDomain(String ntDomain)
      Sets the domain used on NTLM authentication
      Parameters:
      ntDomain - the NTLM domain
      Returns:
      a reference to this, so the API can be used fluently
    • getWorkstation

      public String getWorkstation()
      Workstation used on NTLM authentication
      Returns:
      the workstation used on NTLM authentication
    • setWorkstation

      public MailConfig setWorkstation(String workstation)
      Sets the workstation used on NTLM authentication
      Parameters:
      workstation - the workstation
      Returns:
      a reference to this, so the API can be used fluently
    • setMaxMailsPerConnection

      public MailConfig setMaxMailsPerConnection(long maxMailsPerConnection)
      Sets the max emails count per connection before it gets closed.

      Some SMTP servers have requirement to allow only a number of emails sent per connection.

      Parameters:
      maxMailsPerConnection - the emails count per connection
      Returns:
      a reference to this, so the API can be used fluently
    • getMaxMailsPerConnection

      public long getMaxMailsPerConnection()
      The max emails count per connection.
      Returns:
      the max emails count per connection before it gets closed.
    • toJson

      public JsonObject toJson()
      convert config object to Json representation
      Overrides:
      toJson in class NetClientOptions
      Returns:
      json object of the config
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object