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 Detail

      • DEFAULT_LOGIN

        public static final LoginOption DEFAULT_LOGIN
      • DEFAULT_ALLOW_RCPT_ERRORS

        public static final boolean DEFAULT_ALLOW_RCPT_ERRORS
        See Also:
        Constant Field Values
      • DEFAULT_DISABLE_ESMTP

        public static final boolean DEFAULT_DISABLE_ESMTP
        See Also:
        Constant Field Values
      • DEFAULT_ENABLE_PIPELINING

        public static final boolean DEFAULT_ENABLE_PIPELINING
        See Also:
        Constant Field Values
      • DEFAULT_MULTI_PART_ONLY

        public static final boolean DEFAULT_MULTI_PART_ONLY
        See Also:
        Constant Field Values
      • DEFAULT_MAILS_PER_CONNECTION

        public static final long DEFAULT_MAILS_PER_CONNECTION
        See Also:
        Constant Field Values
      • DEFAULT_POOL_CLEANER_PERIOD

        public static final int DEFAULT_POOL_CLEANER_PERIOD
        Default pool cleaner period = 1000 ms (1 second)
        See Also:
        Constant Field Values
      • 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:
        Constant Field Values
      • DEFAULT_KEEP_ALIVE_TIMEOUT_UNIT

        public static final TimeUnit DEFAULT_KEEP_ALIVE_TIMEOUT_UNIT
    • Constructor Detail

      • 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 Detail

      • 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
      • 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
      • 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
      • 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, OPTIONAL or REQUIRED

        Parameters:
        login - (default is OPTIONAL)
        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
      • setKeyStore

        @Deprecated
        public MailConfig setKeyStore​(String keyStore)
        get the key store filename to be used when opening SMTP connections

        if not set, an options object will be created based on other settings (ssl and trustAll)

        Parameters:
        keyStore - the key store filename to be set
        Returns:
        a reference to this, so the API can be used fluently
      • setKeyStorePassword

        @Deprecated
        public MailConfig setKeyStorePassword​(String keyStorePassword)
        get the key store password to be used when opening SMTP connections
        Parameters:
        keyStorePassword - the key store passwords to be set
        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
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object