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 booleanDEFAULT_ALLOW_RCPT_ERRORSstatic booleanDEFAULT_DISABLE_ESMTPstatic booleanDEFAULT_ENABLE_PIPELININGstatic StringDEFAULT_HOSTstatic booleanDEFAULT_KEEP_ALIVEstatic intDEFAULT_KEEP_ALIVE_TIMEOUTThe default keep alive timeout for SMTP connection = 5 minutesstatic TimeUnitDEFAULT_KEEP_ALIVE_TIMEOUT_UNITstatic LoginOptionDEFAULT_LOGINstatic longDEFAULT_MAILS_PER_CONNECTIONstatic intDEFAULT_MAX_POOL_SIZEstatic booleanDEFAULT_MULTI_PART_ONLYstatic intDEFAULT_POOL_CLEANER_PERIODDefault pool cleaner period = 1000 ms (1 second)static TimeUnitDEFAULT_POOL_CLEANER_PERIOD_TIMEOUT_UNITstatic intDEFAULT_PORTstatic StartTLSOptionsDEFAULT_TLSstatic StringDEFAULT_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 Modifier and Type Method Description MailConfigaddCrlPath(String crlPath)Add a CRL pathMailConfigaddCrlValue(Buffer crlValue)Add a CRL valueMailConfigaddDKIMSignOption(DKIMSignOptions dkimSignOptions)Adds a DKIMSignOptions.MailConfigaddEnabledCipherSuite(String suite)Add an enabled cipher suite, appended to the ordered suites.MailConfigaddEnabledSecureTransportProtocol(String protocol)Add an enabled SSL/TLS protocols, appended to the ordered protocols.booleanequals(Object o)StringgetAuthMethods()get string of allowed auth methods, if set only these methods will be used if the server supports them.DKIMSignOptionsgetDKIMSignOption()Gets the DKIM options.List<DKIMSignOptions>getDKIMSignOptions()Gets the DKIM options.StringgetHostname()get the hostname of the mailserverintgetKeepAliveTimeout()TimeUnitgetKeepAliveTimeoutUnit()Gets theTimeUnitof keeping the connections alive timeout.LoginOptiongetLogin()get login optionslonggetMaxMailsPerConnection()The max emails count per connection.intgetMaxPoolSize()get the max allowed number of open connections to the mailserver if not set the default is 10StringgetNtDomain()Domain used on NTLM authentication.StringgetOwnHostname()get the hostname to be used for HELO/EHLO and the Message-IDStringgetPassword()get passwordintgetPoolCleanerPeriod()TimeUnitgetPoolCleanerPeriodUnit()Gets theTimeUnitof pool cleaning period.intgetPort()get the port of the mailserverStartTLSOptionsgetStarttls()get security (TLS) optionsStringgetUserAgent()Gets the Mail User Agent(MUA) name that will be used to generate boundary and message id.StringgetUsername()get usernameStringgetWorkstation()Workstation used on NTLM authenticationinthashCode()booleanisAllowRcptErrors()get if sending allows rcpt errors (default is false)booleanisDisableEsmtp()get if ESMTP should be tried as first command (EHLO) (default is true)booleanisEnableDKIM()Is DKIM enabled, defaults to false.booleanisKeepAlive()get if connection pool is enabled default is truebooleanisMultiPartOnly()Should the mail message be always encoded as multipart.booleanisPipelining()Is the pipelining will be used if SMTP server supports it.MailConfigremoveEnabledSecureTransportProtocol(String protocol)Removes an enabled SSL/TLS protocol from the ordered protocols.MailConfigsetAllowRcptErrors(boolean allowRcptErrors)set if sending allows rcpt errorsMailConfigsetAuthMethods(String authMethods)set string of allowed auth methods.MailConfigsetConnectTimeout(int connectTimeout)Set the connect timeoutMailConfigsetDisableEsmtp(boolean disableEsmtp)set if ESMTP should be tried as first command (EHLO)MailConfigsetDKIMSignOption(DKIMSignOptions dkimSignOptions)Sets one DKIMSignOptions for convenient.MailConfigsetDKIMSignOptions(List<DKIMSignOptions> dkimSignOptions)Sets DKIMSignOptions.MailConfigsetEnableDKIM(boolean enableDKIM)Sets true to enable DKIM Signatures, sets false to disable it.MailConfigsetEnabledSecureTransportProtocols(Set<String> enabledSecureTransportProtocols)Sets the list of enabled SSL/TLS protocols.MailConfigsetHostname(String hostname)Set the hostname of the smtp server.MailConfigsetHostnameVerificationAlgorithm(String hostnameVerificationAlgorithm)Set the hostname verification algorithm interval To disable hostname verification, set hostnameVerificationAlgorithm to an empty StringMailConfigsetIdleTimeout(int idleTimeout)Set the idle timeout, default time unit is seconds.MailConfigsetIdleTimeoutUnit(TimeUnit idleTimeoutUnit)Set the idle timeout unit.MailConfigsetKeepAlive(boolean keepAlive)set if connection pool is enabled default is trueMailConfigsetKeepAliveTimeout(int keepAliveTimeout)Set the keep alive timeout for SMTP connection, Defaults in seconds.MailConfigsetKeepAliveTimeoutUnit(TimeUnit keepAliveTimeoutUnit)SetsTimeUnitof keeping connections in the pool alive.MailConfigsetKeyCertOptions(KeyCertOptions options)Set the key/cert options.MailConfigsetLocalAddress(String localAddress)Set the local interface to bind for network connections.MailConfigsetLogActivity(boolean logEnabled)Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.MailConfigsetLogin(LoginOption login)Set the login mode for the connection.MailConfigsetMaxMailsPerConnection(long maxMailsPerConnection)Sets the max emails count per connection before it gets closed.MailConfigsetMaxPoolSize(int maxPoolSize)set the max allowed number of open connections to the mail server if not set the default is 10MailConfigsetMetricsName(String metricsName)Set the metrics name identifying the reported metrics, useful for grouping metrics with the same name.MailConfigsetMultiPartOnly(boolean multiPartOnly)Sets to encode multipart only or not.MailConfigsetNtDomain(String ntDomain)Sets the domain used on NTLM authenticationMailConfigsetOwnHostname(String ownHostname)set the hostname to be used for HELO/EHLO and the Message-IDMailConfigsetPassword(String password)Set the password for the login.MailConfigsetPipelining(boolean pipelining)Sets to enable/disable the pipelining capability if SMTP server supports it.MailConfigsetPoolCleanerPeriod(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.MailConfigsetPoolCleanerPeriodUnit(TimeUnit poolCleanerPeriodUnit)Sets theTimeUnitof pool cleaning period.MailConfigsetPort(int port)Set the port of the smtp server.MailConfigsetProxyOptions(ProxyOptions proxyOptions)Set proxy options for connections via CONNECT proxy (e.g.MailConfigsetReceiveBufferSize(int receiveBufferSize)Set the TCP receive buffer sizeMailConfigsetReconnectAttempts(int attempts)Set the value of reconnect attemptsMailConfigsetReconnectInterval(long interval)Set the reconnect intervalMailConfigsetReuseAddress(boolean reuseAddress)Set the value of reuse addressMailConfigsetReusePort(boolean reusePort)Set the value of reuse port.MailConfigsetSendBufferSize(int sendBufferSize)Set the TCP send buffer sizeMailConfigsetSoLinger(int soLinger)Set whether SO_linger keep alive is enabledMailConfigsetSsl(boolean isSsl)Set whether SSL/TLS is enabledMailConfigsetSslEngineOptions(SSLEngineOptions sslEngineOptions)Set to use SSL engine implementation to use.MailConfigsetSslHandshakeTimeout(long sslHandshakeTimeout)Set the SSL handshake timeout, default time unit is seconds.MailConfigsetSslHandshakeTimeoutUnit(TimeUnit sslHandshakeTimeoutUnit)Set the SSL handshake timeout unit.MailConfigsetStarttls(StartTLSOptions starttls)Set the tls security mode for the connection.MailConfigsetTcpCork(boolean tcpCork)Enable theTCP_CORKoption - only with linux native transport.MailConfigsetTcpFastOpen(boolean tcpFastOpen)Enable theTCP_FASTOPENoption - only with linux native transport.MailConfigsetTcpKeepAlive(boolean tcpKeepAlive)Set whether TCP keep alive is enabledMailConfigsetTcpNoDelay(boolean tcpNoDelay)Set whether TCP no delay is enabledMailConfigsetTcpQuickAck(boolean tcpQuickAck)Enable theTCP_QUICKACKoption - only with linux native transport.MailConfigsetTrafficClass(int trafficClass)Set the value of traffic classMailConfigsetTrustAll(boolean trustAll)Set whether all server certificates should be trustedMailConfigsetTrustOptions(TrustOptions options)Set the trust options.MailConfigsetUseAlpn(boolean useAlpn)Set the ALPN usage.MailConfigsetUserAgent(String userAgent)Sets the Mail User Agent(MUA) name.MailConfigsetUsername(String username)Set the username for the login.MailConfigsetWorkstation(String workstation)Sets the workstation used on NTLM authenticationJsonObjecttoJson()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:NetworkOptionsSet the TCP send buffer size- Overrides:
setSendBufferSizein 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:NetworkOptionsSet the TCP receive buffer size- Overrides:
setReceiveBufferSizein 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:NetworkOptionsSet the value of reuse address- Overrides:
setReuseAddressin 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:NetworkOptionsSet the value of reuse port. This is only supported by native transports.- Overrides:
setReusePortin 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:NetworkOptionsSet the value of traffic class- Overrides:
setTrafficClassin 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:TCPSSLOptionsSet whether TCP no delay is enabled- Overrides:
setTcpNoDelayin 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:TCPSSLOptionsSet whether TCP keep alive is enabled- Overrides:
setTcpKeepAlivein 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:TCPSSLOptionsSet whether SO_linger keep alive is enabled- Overrides:
setSoLingerin 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:TCPSSLOptionsSet 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:
setIdleTimeoutin 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:TCPSSLOptionsSet the idle timeout unit. If not specified, default is seconds.- Overrides:
setIdleTimeoutUnitin 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:TCPSSLOptionsSet the key/cert options.- Overrides:
setKeyCertOptionsin 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:TCPSSLOptionsSet the trust options.- Overrides:
setTrustOptionsin 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:TCPSSLOptionsAdd an enabled cipher suite, appended to the ordered suites.- Overrides:
addEnabledCipherSuitein 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:TCPSSLOptionsAdd an enabled SSL/TLS protocols, appended to the ordered protocols.- Overrides:
addEnabledSecureTransportProtocolin 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:TCPSSLOptionsRemoves an enabled SSL/TLS protocol from the ordered protocols.- Overrides:
removeEnabledSecureTransportProtocolin 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:TCPSSLOptionsSet the ALPN usage.- Overrides:
setUseAlpnin classNetClientOptions- Parameters:
useAlpn- true when Application-Layer Protocol Negotiation should be used
-
setSslEngineOptions
public MailConfig setSslEngineOptions(SSLEngineOptions sslEngineOptions)
Description copied from class:TCPSSLOptionsSet to use SSL engine implementation to use.- Overrides:
setSslEngineOptionsin 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:TCPSSLOptionsEnable theTCP_FASTOPENoption - only with linux native transport.- Overrides:
setTcpFastOpenin classNetClientOptions- Parameters:
tcpFastOpen- the fast open value
-
setTcpCork
public MailConfig setTcpCork(boolean tcpCork)
Description copied from class:TCPSSLOptionsEnable theTCP_CORKoption - only with linux native transport.- Overrides:
setTcpCorkin classNetClientOptions- Parameters:
tcpCork- the cork value
-
setTcpQuickAck
public MailConfig setTcpQuickAck(boolean tcpQuickAck)
Description copied from class:TCPSSLOptionsEnable theTCP_QUICKACKoption - only with linux native transport.- Overrides:
setTcpQuickAckin classNetClientOptions- Parameters:
tcpQuickAck- the quick ack value
-
addCrlPath
public MailConfig addCrlPath(String crlPath) throws NullPointerException
Description copied from class:TCPSSLOptionsAdd a CRL path- Overrides:
addCrlPathin 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:TCPSSLOptionsAdd a CRL value- Overrides:
addCrlValuein 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:ClientOptionsBaseSet the connect timeout- Overrides:
setConnectTimeoutin 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:ClientOptionsBaseSet the metrics name identifying the reported metrics, useful for grouping metrics with the same name.- Overrides:
setMetricsNamein 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:NetClientOptionsSet the value of reconnect attempts- Overrides:
setReconnectAttemptsin 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:NetClientOptionsSet the reconnect interval- Overrides:
setReconnectIntervalin 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:NetClientOptionsSet the hostname verification algorithm interval To disable hostname verification, set hostnameVerificationAlgorithm to an empty String- Overrides:
setHostnameVerificationAlgorithmin 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:NetworkOptionsSet to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.- Overrides:
setLogActivityin 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:ClientOptionsBaseSet proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.- Overrides:
setProxyOptionsin 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:ClientOptionsBaseSet 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:
setLocalAddressin 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:TCPSSLOptionsSet the SSL handshake timeout, default time unit is seconds.- Overrides:
setSslHandshakeTimeoutin 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:TCPSSLOptionsSet the SSL handshake timeout unit. If not specified, default is seconds.- Overrides:
setSslHandshakeTimeoutUnitin 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, NONE, REQUIRED or XOAUTH2
- Parameters:
login- (default seeDEFAULT_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:TCPSSLOptionsSet whether SSL/TLS is enabled- Overrides:
setSslin 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:TCPSSLOptionsSets the list of enabled SSL/TLS protocols.- Overrides:
setEnabledSecureTransportProtocolsin 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:ClientOptionsBaseSet whether all server certificates should be trusted- Overrides:
setTrustAllin classNetClientOptions- 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 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
nullis 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 of0means 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 theTimeUnitof pool cleaning period. Defaults toTimeUnit.MILLISECONDS- Returns:
- the
TimeUnitof the pool cleaning period.
-
setPoolCleanerPeriodUnit
public MailConfig setPoolCleanerPeriodUnit(TimeUnit poolCleanerPeriodUnit)
Sets theTimeUnitof pool cleaning period.- Parameters:
poolCleanerPeriodUnit- theTimeUnitof the pool cleaning period.- Returns:
- a reference to this, so the API can be used fluently
-
getKeepAliveTimeoutUnit
public TimeUnit getKeepAliveTimeoutUnit()
Gets theTimeUnitof keeping the connections alive timeout. Defaults toTimeUnit.SECONDS- Returns:
- the
TimeUnitof keeping the connections alive timeout
-
setKeepAliveTimeoutUnit
public MailConfig setKeepAliveTimeoutUnit(TimeUnit keepAliveTimeoutUnit)
SetsTimeUnitof keeping connections in the pool alive.- Parameters:
keepAliveTimeoutUnit- theTimeUnitof 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:
toJsonin classNetClientOptions- Returns:
- json object of the config
-
-