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 Summary
Fields Modifier and Type Field Description static boolean
DEFAULT_ALLOW_RCPT_ERRORS
static boolean
DEFAULT_DISABLE_ESMTP
static boolean
DEFAULT_ENABLE_PIPELINING
static String
DEFAULT_HOST
static boolean
DEFAULT_KEEP_ALIVE
static int
DEFAULT_KEEP_ALIVE_TIMEOUT
The default keep alive timeout for SMTP connection = 5 minutesstatic TimeUnit
DEFAULT_KEEP_ALIVE_TIMEOUT_UNIT
static LoginOption
DEFAULT_LOGIN
static long
DEFAULT_MAILS_PER_CONNECTION
static int
DEFAULT_MAX_POOL_SIZE
static boolean
DEFAULT_MULTI_PART_ONLY
static int
DEFAULT_POOL_CLEANER_PERIOD
Default pool cleaner period = 1000 ms (1 second)static TimeUnit
DEFAULT_POOL_CLEANER_PERIOD_TIMEOUT_UNIT
static int
DEFAULT_PORT
static StartTLSOptions
DEFAULT_TLS
static String
DEFAULT_USER_AGENT
-
Fields inherited from class io.vertx.core.net.NetClientOptions
DEFAULT_HOSTNAME_VERIFICATION_ALGORITHM, DEFAULT_RECONNECT_ATTEMPTS, DEFAULT_RECONNECT_INTERVAL, DEFAULT_REGISTER_WRITE_HANDLER
-
Fields inherited from class io.vertx.core.net.ClientOptionsBase
DEFAULT_CONNECT_TIMEOUT, DEFAULT_METRICS_NAME
-
Fields inherited from class io.vertx.core.net.TCPSSLOptions
DEFAULT_IDLE_TIMEOUT, DEFAULT_IDLE_TIMEOUT_TIME_UNIT, DEFAULT_READ_IDLE_TIMEOUT, DEFAULT_SO_LINGER, DEFAULT_SSL, DEFAULT_SSL_ENGINE, DEFAULT_TCP_CORK, DEFAULT_TCP_FAST_OPEN, DEFAULT_TCP_KEEP_ALIVE, DEFAULT_TCP_NO_DELAY, DEFAULT_TCP_QUICKACK, DEFAULT_TCP_USER_TIMEOUT, DEFAULT_WRITE_IDLE_TIMEOUT
-
Fields inherited from class io.vertx.core.net.NetworkOptions
DEFAULT_LOG_ACTIVITY_FORMAT, DEFAULT_LOG_ENABLED, DEFAULT_RECEIVE_BUFFER_SIZE, DEFAULT_REUSE_ADDRESS, DEFAULT_REUSE_PORT, DEFAULT_SEND_BUFFER_SIZE, DEFAULT_TRAFFIC_CLASS
-
-
Constructor Summary
Constructors Constructor Description MailConfig()
construct a config object with default optionsMailConfig(JsonObject config)
construct config object from Json representationMailConfig(MailConfig other)
copy config object from another MailConfig objectMailConfig(String hostname)
construct a config object with hostname and default optionsMailConfig(String hostname, int port)
construct a config object with hostname/port and default optionsMailConfig(String hostname, int port, StartTLSOptions starttls, LoginOption login)
construct a config object with hostname/port and security and login options
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description MailConfig
addCrlPath(String crlPath)
Add a CRL pathMailConfig
addCrlValue(Buffer crlValue)
Add a CRL valueMailConfig
addDKIMSignOption(DKIMSignOptions dkimSignOptions)
Adds a DKIMSignOptions.MailConfig
addEnabledCipherSuite(String suite)
Add an enabled cipher suite, appended to the ordered suites.MailConfig
addEnabledSecureTransportProtocol(String protocol)
Add an enabled SSL/TLS protocols, appended to the ordered protocols.boolean
equals(Object o)
String
getAuthMethods()
get string of allowed auth methods, if set only these methods will be used if the server supports them.DKIMSignOptions
getDKIMSignOption()
Gets the DKIM options.List<DKIMSignOptions>
getDKIMSignOptions()
Gets the DKIM options.String
getHostname()
get the hostname of the mailserverint
getKeepAliveTimeout()
TimeUnit
getKeepAliveTimeoutUnit()
Gets theTimeUnit
of keeping the connections alive timeout.String
getKeyStore()
Deprecated.String
getKeyStorePassword()
Deprecated.LoginOption
getLogin()
get login optionslong
getMaxMailsPerConnection()
The max emails count per connection.int
getMaxPoolSize()
get the max allowed number of open connections to the mailserver if not set the default is 10String
getNtDomain()
Domain used on NTLM authentication.String
getOwnHostname()
get the hostname to be used for HELO/EHLO and the Message-IDString
getPassword()
get passwordint
getPoolCleanerPeriod()
TimeUnit
getPoolCleanerPeriodUnit()
Gets theTimeUnit
of pool cleaning period.int
getPort()
get the port of the mailserverStartTLSOptions
getStarttls()
get security (TLS) optionsString
getUserAgent()
Gets the Mail User Agent(MUA) name that will be used to generate boundary and message id.String
getUsername()
get usernameString
getWorkstation()
Workstation used on NTLM authenticationint
hashCode()
boolean
isAllowRcptErrors()
get if sending allows rcpt errors (default is false)boolean
isDisableEsmtp()
get if ESMTP should be tried as first command (EHLO) (default is true)boolean
isEnableDKIM()
Is DKIM enabled, defaults to false.boolean
isKeepAlive()
get if connection pool is enabled default is trueboolean
isMultiPartOnly()
Should the mail message be always encoded as multipart.boolean
isPipelining()
Is the pipelining will be used if SMTP server supports it.MailConfig
removeEnabledSecureTransportProtocol(String protocol)
Removes an enabled SSL/TLS protocol from the ordered protocols.MailConfig
setAllowRcptErrors(boolean allowRcptErrors)
set if sending allows rcpt errorsMailConfig
setAuthMethods(String authMethods)
set string of allowed auth methods.MailConfig
setConnectTimeout(int connectTimeout)
Set the connect timeoutMailConfig
setDisableEsmtp(boolean disableEsmtp)
set if ESMTP should be tried as first command (EHLO)MailConfig
setDKIMSignOption(DKIMSignOptions dkimSignOptions)
Sets one DKIMSignOptions for convenient.MailConfig
setDKIMSignOptions(List<DKIMSignOptions> dkimSignOptions)
Sets DKIMSignOptions.MailConfig
setEnableDKIM(boolean enableDKIM)
Sets true to enable DKIM Signatures, sets false to disable it.MailConfig
setEnabledSecureTransportProtocols(Set<String> enabledSecureTransportProtocols)
Sets the list of enabled SSL/TLS protocols.MailConfig
setHostname(String hostname)
Set the hostname of the smtp server.MailConfig
setHostnameVerificationAlgorithm(String hostnameVerificationAlgorithm)
Set the hostname verification algorithm interval To disable hostname verification, set hostnameVerificationAlgorithm to an empty StringMailConfig
setIdleTimeout(int idleTimeout)
Set the idle timeout, default time unit is seconds.MailConfig
setIdleTimeoutUnit(TimeUnit idleTimeoutUnit)
Set the idle timeout unit.MailConfig
setKeepAlive(boolean keepAlive)
set if connection pool is enabled default is trueMailConfig
setKeepAliveTimeout(int keepAliveTimeout)
Set the keep alive timeout for SMTP connection, Defaults in seconds.MailConfig
setKeepAliveTimeoutUnit(TimeUnit keepAliveTimeoutUnit)
SetsTimeUnit
of keeping connections in the pool alive.MailConfig
setKeyCertOptions(KeyCertOptions options)
Set the key/cert options.MailConfig
setKeyStore(String keyStore)
Deprecated.MailConfig
setKeyStorePassword(String keyStorePassword)
Deprecated.MailConfig
setLocalAddress(String localAddress)
Set the local interface to bind for network connections.MailConfig
setLogActivity(boolean logEnabled)
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.MailConfig
setLogin(LoginOption login)
Set the login mode for the connection.MailConfig
setMaxMailsPerConnection(long maxMailsPerConnection)
Sets the max emails count per connection before it gets closed.MailConfig
setMaxPoolSize(int maxPoolSize)
set the max allowed number of open connections to the mail server if not set the default is 10MailConfig
setMetricsName(String metricsName)
Set the metrics name identifying the reported metrics, useful for grouping metrics with the same name.MailConfig
setMultiPartOnly(boolean multiPartOnly)
Sets to encode multipart only or not.MailConfig
setNtDomain(String ntDomain)
Sets the domain used on NTLM authenticationMailConfig
setOwnHostname(String ownHostname)
set the hostname to be used for HELO/EHLO and the Message-IDMailConfig
setPassword(String password)
Set the password for the login.MailConfig
setPipelining(boolean pipelining)
Sets to enable/disable the pipelining capability if SMTP server supports it.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.MailConfig
setPoolCleanerPeriodUnit(TimeUnit poolCleanerPeriodUnit)
Sets theTimeUnit
of pool cleaning period.MailConfig
setPort(int port)
Set the port of the smtp server.MailConfig
setProxyOptions(ProxyOptions proxyOptions)
Set proxy options for connections via CONNECT proxy (e.g.MailConfig
setReceiveBufferSize(int receiveBufferSize)
Set the TCP receive buffer sizeMailConfig
setReconnectAttempts(int attempts)
Set the value of reconnect attemptsMailConfig
setReconnectInterval(long interval)
Set the reconnect intervalMailConfig
setReuseAddress(boolean reuseAddress)
Set the value of reuse addressMailConfig
setReusePort(boolean reusePort)
Set the value of reuse port.MailConfig
setSendBufferSize(int sendBufferSize)
Set the TCP send buffer sizeMailConfig
setSoLinger(int soLinger)
Set whether SO_linger keep alive is enabledMailConfig
setSsl(boolean isSsl)
Set whether SSL/TLS is enabledMailConfig
setSslEngineOptions(SSLEngineOptions sslEngineOptions)
Set to use SSL engine implementation to use.MailConfig
setSslHandshakeTimeout(long sslHandshakeTimeout)
Set the SSL handshake timeout, default time unit is seconds.MailConfig
setSslHandshakeTimeoutUnit(TimeUnit sslHandshakeTimeoutUnit)
Set the SSL handshake timeout unit.MailConfig
setStarttls(StartTLSOptions starttls)
Set the tls security mode for the connection.MailConfig
setTcpCork(boolean tcpCork)
Enable theTCP_CORK
option - only with linux native transport.MailConfig
setTcpFastOpen(boolean tcpFastOpen)
Enable theTCP_FASTOPEN
option - only with linux native transport.MailConfig
setTcpKeepAlive(boolean tcpKeepAlive)
Set whether TCP keep alive is enabledMailConfig
setTcpNoDelay(boolean tcpNoDelay)
Set whether TCP no delay is enabledMailConfig
setTcpQuickAck(boolean tcpQuickAck)
Enable theTCP_QUICKACK
option - only with linux native transport.MailConfig
setTrafficClass(int trafficClass)
Set the value of traffic classMailConfig
setTrustAll(boolean trustAll)
Set whether all server certificates should be trustedMailConfig
setTrustOptions(TrustOptions options)
Set the trust options.MailConfig
setUseAlpn(boolean useAlpn)
Set the ALPN usage.MailConfig
setUserAgent(String userAgent)
Sets the Mail User Agent(MUA) name.MailConfig
setUsername(String username)
Set the username for the login.MailConfig
setWorkstation(String workstation)
Sets the workstation used on NTLM authenticationJsonObject
toJson()
convert config object to Json representation-
Methods inherited from class io.vertx.core.net.NetClientOptions
addNonProxyHost, getApplicationLayerProtocols, getHostnameVerificationAlgorithm, getReconnectAttempts, getReconnectInterval, isRegisterWriteHandler, removeEnabledCipherSuite, setActivityLogDataFormat, setApplicationLayerProtocols, setNonProxyHosts, setReadIdleTimeout, setRegisterWriteHandler, setWriteIdleTimeout
-
Methods inherited from class io.vertx.core.net.ClientOptionsBase
getConnectTimeout, getLocalAddress, getMetricsName, getNonProxyHosts, getOrCreateSSLOptions, getProxyOptions, getSslOptions, isTrustAll, setTcpUserTimeout
-
Methods inherited from class io.vertx.core.net.TCPSSLOptions
getCrlPaths, getCrlValues, getEnabledCipherSuites, getEnabledSecureTransportProtocols, getIdleTimeout, getIdleTimeoutUnit, getKeyCertOptions, getReadIdleTimeout, getSoLinger, getSslEngineOptions, getSslHandshakeTimeout, getSslHandshakeTimeoutUnit, getTcpUserTimeout, getTrustOptions, getWriteIdleTimeout, isSsl, isTcpCork, isTcpFastOpen, isTcpKeepAlive, isTcpNoDelay, isTcpQuickAck, isUseAlpn
-
Methods inherited from class io.vertx.core.net.NetworkOptions
getActivityLogDataFormat, getLogActivity, getReceiveBufferSize, getSendBufferSize, getTrafficClass, isReuseAddress, isReusePort
-
-
-
-
Field Detail
-
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:
- Constant Field Values
-
DEFAULT_HOST
public static final String DEFAULT_HOST
- See Also:
- Constant Field Values
-
DEFAULT_MAX_POOL_SIZE
public static final int DEFAULT_MAX_POOL_SIZE
- See Also:
- Constant Field Values
-
DEFAULT_ALLOW_RCPT_ERRORS
public static final boolean DEFAULT_ALLOW_RCPT_ERRORS
- See Also:
- Constant Field Values
-
DEFAULT_KEEP_ALIVE
public static final boolean DEFAULT_KEEP_ALIVE
- See Also:
- Constant Field Values
-
DEFAULT_DISABLE_ESMTP
public static final boolean DEFAULT_DISABLE_ESMTP
- See Also:
- Constant Field Values
-
DEFAULT_USER_AGENT
public static final String DEFAULT_USER_AGENT
- 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 serverport
- 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 serverport
- the port of the mail serverstarttls
- whether to use TLS or notlogin
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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, useTCPSSLOptions.setIdleTimeoutUnit(TimeUnit)
- Overrides:
setIdleTimeout
in classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- Parameters:
suite
- the suite- Returns:
- a reference to this, so the API can be used fluently
- See Also:
TCPSSLOptions.getEnabledCipherSuites()
-
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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 theTCP_FASTOPEN
option - only with linux native transport.- Overrides:
setTcpFastOpen
in classNetClientOptions
- Parameters:
tcpFastOpen
- the fast open value
-
setTcpCork
public MailConfig setTcpCork(boolean tcpCork)
Description copied from class:TCPSSLOptions
Enable theTCP_CORK
option - only with linux native transport.- Overrides:
setTcpCork
in classNetClientOptions
- Parameters:
tcpCork
- the cork value
-
setTcpQuickAck
public MailConfig setTcpQuickAck(boolean tcpQuickAck)
Description copied from class:TCPSSLOptions
Enable theTCP_QUICKACK
option - only with linux native transport.- Overrides:
setTcpQuickAck
in classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- 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 classNetClientOptions
- Parameters:
trustAll
- true if all should be trusted- Returns:
- a reference to this, so the API can be used fluently
-
getKeyStore
@Deprecated public String getKeyStore()
Deprecated.get the key store filename to be used when opening SMTP connections- Returns:
- the keyStore
-
setKeyStore
@Deprecated public MailConfig setKeyStore(String keyStore)
Deprecated.get the key store filename to be used when opening SMTP connectionsif 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
-
getKeyStorePassword
@Deprecated public String getKeyStorePassword()
Deprecated.get the key store password to be used when opening SMTP connections- Returns:
- the keyStorePassword
-
setKeyStorePassword
@Deprecated public MailConfig setKeyStorePassword(String keyStorePassword)
Deprecated.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 trueif 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 trueif 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 errorsif 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 totrue
, 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 tofalse
.- 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 of0
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 theTimeUnit
of pool cleaning period. Defaults toTimeUnit.MILLISECONDS
- Returns:
- the
TimeUnit
of the pool cleaning period.
-
setPoolCleanerPeriodUnit
public MailConfig setPoolCleanerPeriodUnit(TimeUnit poolCleanerPeriodUnit)
Sets theTimeUnit
of pool cleaning period.- Parameters:
poolCleanerPeriodUnit
- theTimeUnit
of the pool cleaning period.- Returns:
- a reference to this, so the API can be used fluently
-
getKeepAliveTimeoutUnit
public TimeUnit getKeepAliveTimeoutUnit()
Gets theTimeUnit
of keeping the connections alive timeout. Defaults toTimeUnit.SECONDS
- Returns:
- the
TimeUnit
of keeping the connections alive timeout
-
setKeepAliveTimeoutUnit
public MailConfig setKeepAliveTimeoutUnit(TimeUnit keepAliveTimeoutUnit)
SetsTimeUnit
of keeping connections in the pool alive.- Parameters:
keepAliveTimeoutUnit
- theTimeUnit
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 classNetClientOptions
- Returns:
- json object of the config
-
-