public interface MailerGenericBuilder<T extends MailerGenericBuilder<?>>
Note: To start creating a new Mailer, you use MailerBuilder
directly instead.
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_CONNECTIONPOOL_CLAIMTIMEOUT_MILLIS
2147483647 (
Integer.MAX_VALUE ), effectively indefinately. |
static int |
DEFAULT_CONNECTIONPOOL_CORE_SIZE
0
|
static int |
DEFAULT_CONNECTIONPOOL_EXPIREAFTER_MILLIS
5000
|
static String |
DEFAULT_CONNECTIONPOOL_LOADBALANCING_STRATEGY
"ROUND_ROBIN"
|
static int |
DEFAULT_CONNECTIONPOOL_MAX_SIZE
4
|
static boolean |
DEFAULT_DISABLE_ALL_CLIENTVALIDATION
Defaults to
false , validating emailaddresses (can be configured seperately, but this does override it) and CRLF injection detection (will arn instead). |
static boolean |
DEFAULT_JAVAXMAIL_DEBUG
Defaults to
false , sending mails rather than just only logging the mails. |
static int |
DEFAULT_POOL_KEEP_ALIVE_TIME
1
|
static int |
DEFAULT_POOL_SIZE
10
|
static int |
DEFAULT_PROXY_BRIDGE_PORT
The temporary intermediary SOCKS5 relay server bridge is a server that sits in between JavaMail and the remote proxy.
|
static int |
DEFAULT_PROXY_PORT
Default port is
1080 . |
static int |
DEFAULT_SESSION_TIMEOUT_MILLIS
The default maximum timeout value for the transport socket is
60000 milliseconds (affects socket connect-,
read- and write timeouts). |
static boolean |
DEFAULT_TRANSPORT_MODE_LOGGING_ONLY
Defaults to
false , sending mails rather than just only logging the mails. |
static boolean |
DEFAULT_TRUST_ALL_HOSTS
true
|
static boolean |
DEFAULT_VERIFY_SERVER_IDENTITY
true
|
Modifier and Type | Method and Description |
---|---|
T |
async()
Changes the default for sending emails and testing server connections to asynchronous (batch mode).
|
Mailer |
buildMailer() |
T |
clearEmailDefaults()
Makes the reference
Email instance null , meaning no defaults will be applied. |
T |
clearEmailOverrides()
Makes the reference
Email instance null , meaning no overrides will be applied. |
T |
clearEmailValidator()
Makes the email validator
null , meaning validation won't take place. |
T |
clearMaximumEmailSize()
Makes the maximum email size
null , meaning no size check will be performed. |
T |
clearProperties()
Removes all properties.
|
T |
clearProxy()
Empties all proxy configuration.
|
T |
clearTrustedSSLHosts()
Removes all trusted hosts from the list.
|
T |
disablingAllClientValidation(@NotNull Boolean disableAllClientValidation)
Controls whether there will be any client-sided validation, including email address validation and CRLF injection attack detection (which will be warning instead).
|
@Nullable UUID |
getClusterKey() |
@NotNull Integer |
getConnectionPoolClaimTimeoutMillis() |
@NotNull Integer |
getConnectionPoolCoreSize() |
@NotNull Integer |
getConnectionPoolExpireAfterMillis() |
@NotNull LoadBalancingStrategy |
getConnectionPoolLoadBalancingStrategy() |
@NotNull Integer |
getConnectionPoolMaxSize() |
@Nullable CustomMailer |
getCustomMailer() |
@Nullable Email |
getEmailDefaults() |
@Nullable Email |
getEmailOverrides() |
@Nullable com.sanctionco.jmail.EmailValidator |
getEmailValidator() |
@Nullable ExecutorService |
getExecutorService()
Returns the user set ExecutorService or else null as the default ExecutorService is not created until the
OperationalConfig is created for the
new Mailer instance. |
@Nullable Integer |
getMaximumEmailSize() |
@Nullable Properties |
getProperties() |
@Nullable Integer |
getProxyBridgePort() |
@Nullable String |
getProxyHost() |
@Nullable String |
getProxyPassword() |
@Nullable Integer |
getProxyPort() |
@Nullable String |
getProxyUsername() |
@Nullable Integer |
getSessionTimeout() |
@Nullable List<String> |
getSslHostsToTrust() |
@NotNull Integer |
getThreadPoolKeepAliveTime() |
@NotNull Integer |
getThreadPoolSize() |
boolean |
isAsync() |
boolean |
isDebugLogging() |
boolean |
isDisableAllClientValidation() |
boolean |
isTransportModeLoggingOnly() |
boolean |
isTrustAllSSLHost() |
boolean |
isVerifyingServerIdentity() |
T |
resetClusterKey()
Reset the cluster key to empty, so it will be generated uniquely, avoiding clustering with any other
Mailer . |
T |
resetConnectionPoolClaimTimeoutMillis()
Resets connection pool connection claim timeout back to indefinately.
|
T |
resetConnectionPoolCoreSize()
Resets connection pool core size to its default (0).
|
T |
resetConnectionPoolExpireAfterMillis()
Resets connection pool expire-after-milliseconds property to its default (5000).
|
T |
resetConnectionPoolLoadBalancingStrategy()
Resets connection pool load balancing strategy to its default ("ROUND_ROBIN").
|
T |
resetConnectionPoolMaxSize()
Resets connection pool max size to its default (4).
|
T |
resetDisableAllClientValidations()
Reverts to default value 'true' for the behaviour of disabling client-sided
validations (email addresses and CRLF injection scanning).
|
T |
resetEmailValidator()
Resets the email validator to
JMail.strictValidator() . |
T |
resetExecutorService()
Resets the executor services to be used back to the default, created by the Batch module if loaded, or else
Executors.newSingleThreadExecutor() . |
T |
resetSessionTimeout()
Resets session time to its default (60000).
|
T |
resetThreadPoolKeepAliveTime()
Resets thread pool keepAliveTime to its default (1).
|
T |
resetThreadPoolSize()
Resets max thread pool size to its default of 10.
|
T |
resetTransportModeLoggingOnly()
Resets transportModeLoggingOnly to false.
|
T |
resetTrustingAllHosts()
Reset trusting any host; trust all hosts is set to true.
|
T |
resetVerifyingServerIdentity()
Reset verifying the server's identity to true.
|
T |
trustingAllHosts(boolean trustAllHosts)
Configures the current session to trust all hosts.
|
T |
trustingSSLHosts(String... sslHostsToTrust)
Configures the new session to only accept server certificates issued to one of the provided hostnames.
|
T |
verifyingServerIdentity(boolean verifyingServerIdentity)
Configures the current session to not verify the server's identity on an SSL connection.
|
T |
withClusterKey(@NotNull UUID clusterKey)
By defining a clusterKey, you can form clusters where other
Mailer instances represent
individual connection pools within the same cluster. |
T |
withConnectionPoolClaimTimeoutMillis(@NotNull Integer connectionPoolClaimTimeoutMillis)
If
>0 , configures the connection pool to wait for a limited time after which the attempt to claim a Transport connection errors out. |
T |
withConnectionPoolCoreSize(@NotNull Integer connectionPoolCoreSize)
Configures the connection pool's core size (default 0), which means the SMTP connection pool will keep X connections open at all times until shut down.
|
T |
withConnectionPoolExpireAfterMillis(@NotNull Integer connectionPoolExpireAfterMillis)
If
>0 , configures the connection pool to automatically close connections after some milliseconds (default 5000) since last usage. |
T |
withConnectionPoolLoadBalancingStrategy(@NotNull LoadBalancingStrategy loadBalancingStrategy)
Defines the various types of load balancing modes supported by the connection pool ion the
batch-module.
|
T |
withConnectionPoolMaxSize(@NotNull Integer connectionPoolMaxSize)
Configures the connection pool's max size (default 4) in case of high thread contention.
|
T |
withCustomMailer(@NotNull CustomMailer customMailer) |
T |
withDebugLogging(@NotNull Boolean debugLogging)
This flag is set on the Session instance through
Session.setDebug(boolean) so that it generates debug information. |
T |
withEmailDefaults(@NotNull Email emailDefaults)
Sets a reference
Email to be used for default values on all emails coming through this Mailer instance. |
T |
withEmailOverrides(@NotNull Email emailoverrides)
Sets a reference
Email to be used for default values on all emails coming through this Mailer instance. |
T |
withEmailValidator(@NotNull com.sanctionco.jmail.EmailValidator emailValidator)
Sets the email address validator used when validating and sending emails using the current
Mailer instance. |
T |
withExecutorService(@NotNull ExecutorService executorService)
For advanced use cases.
|
T |
withMaximumEmailSize(int maximumEmailSize)
Sets a maximum size for emails (as MimeMessage) in bytes.
|
T |
withProperties(@NotNull Map<String,String> properties) |
T |
withProperties(@NotNull Properties properties)
Adds the given properties to the total list applied to the
Session when building a mailer. |
T |
withProperty(@NotNull String propertyName,
@Nullable Object propertyValue)
Sets property or removes it if the provided value is
null . |
T |
withProxy(@Nullable String proxyHost,
@Nullable Integer proxyPort)
Delegates to
withProxyHost(String) and withProxyPort(Integer) . |
T |
withProxy(@Nullable String proxyHost,
@Nullable Integer proxyPort,
@Nullable String proxyUsername,
@Nullable String proxyPassword)
Sets proxy server settings, by delegating to:
withProxyHost(String)
withProxyPort(Integer)
withProxyUsername(String)
withProxyPassword(String)
|
T |
withProxyBridgePort(@NotNull Integer proxyBridgePort)
Relevant only when using username authentication with a proxy.
|
T |
withProxyHost(@Nullable String proxyHost)
Sets the optional proxy host, which will override any default that might have been set (through properties file or programmatically).
|
T |
withProxyPassword(@Nullable String proxyPassword)
Sets the optional password to authenticate with the proxy.
|
T |
withProxyPort(@Nullable Integer proxyPort)
Sets the proxy port, which will override any default that might have been set (through properties file or programmatically).
|
T |
withProxyUsername(@Nullable String proxyUsername)
Sets the optional username to authenticate with the proxy.
|
T |
withSessionTimeout(@NotNull Integer sessionTimeout)
Controls the timeout to use when sending emails (affects socket connect-, read- and write timeouts).
|
T |
withThreadPoolKeepAliveTime(@NotNull Integer threadPoolKeepAliveTime)
When set to a non-zero value (milliseconds), this keepAlivetime is applied to both core and extra threads.
|
T |
withThreadPoolSize(@NotNull Integer threadPoolSize)
Sets max thread pool size to the given size (default is 10).
|
T |
withTransportModeLoggingOnly(@NotNull Boolean transportModeLoggingOnly)
Determines whether at the very last moment an email is sent out using JavaMail's native API or whether the email is simply only logged.
|
static final boolean DEFAULT_TRUST_ALL_HOSTS
trustingAllHosts(boolean)
,
Constant Field Valuesstatic final boolean DEFAULT_VERIFY_SERVER_IDENTITY
static final int DEFAULT_SESSION_TIMEOUT_MILLIS
60000
milliseconds (affects socket connect-,
read- and write timeouts). Can be overridden from a config file or through System variable.static final int DEFAULT_POOL_SIZE
withThreadPoolSize(Integer)
,
Constant Field Valuesstatic final int DEFAULT_POOL_KEEP_ALIVE_TIME
static final int DEFAULT_CONNECTIONPOOL_CORE_SIZE
static final int DEFAULT_CONNECTIONPOOL_MAX_SIZE
static final int DEFAULT_CONNECTIONPOOL_CLAIMTIMEOUT_MILLIS
Integer.MAX_VALUE
), effectively indefinately.static final int DEFAULT_CONNECTIONPOOL_EXPIREAFTER_MILLIS
static final String DEFAULT_CONNECTIONPOOL_LOADBALANCING_STRATEGY
static final int DEFAULT_PROXY_PORT
1080
.static final int DEFAULT_PROXY_BRIDGE_PORT
1081
.static final boolean DEFAULT_TRANSPORT_MODE_LOGGING_ONLY
false
, sending mails rather than just only logging the mails.static final boolean DEFAULT_JAVAXMAIL_DEBUG
false
, sending mails rather than just only logging the mails.static final boolean DEFAULT_DISABLE_ALL_CLIENTVALIDATION
false
, validating emailaddresses (can be configured seperately, but this does override it) and CRLF injection detection (will arn instead).T async()
In case of asynchronous mode, make sure you configure logging to file or inspect the returned CompletableFuture
.
Note that you can configure a couple of concurrency properties such as thread pool size, keepAlivetime, connection pool size (or even a cluster) etc.
Note: without configuring a thread pool (see withExecutorService(ExecutorService)
or
T withProxy(@Nullable @Nullable String proxyHost, @Nullable @Nullable Integer proxyPort)
withProxyHost(String)
and withProxyPort(Integer)
.T withProxy(@Nullable @Nullable String proxyHost, @Nullable @Nullable Integer proxyPort, @Nullable @Nullable String proxyUsername, @Nullable @Nullable String proxyPassword)
proxyHost
- See linked documentation above.proxyPort
- See linked documentation above.proxyUsername
- See linked documentation above.proxyPassword
- See linked documentation above.T withProxyHost(@Nullable @Nullable String proxyHost)
T withProxyPort(@Nullable @Nullable Integer proxyPort)
Defaults to 1080 if no custom default property was configured.
T withProxyUsername(@Nullable @Nullable String proxyUsername)
Simple Java Mail client -> JavaMail -> anonymous authentication with local proxy bridge -> full authentication with remote SOCKS proxy -> SMTP server
.
T withProxyPassword(@Nullable @Nullable String proxyPassword)
Note: this is only works in combination with the "Authenticated socks module".
withProxyUsername(String)
T withProxyBridgePort(@NotNull @NotNull Integer proxyBridgePort)
Overrides the default for the intermediary SOCKS5 relay server bridge, which is a server that sits in between JavaMail and the remote proxy.
Defaults to 1081 if no custom default property was configured.
Note: this is only works in combination with the "Authenticated socks module".
proxyBridgePort
- The port to use for the proxy bridging server.withProxyUsername(String)
T withDebugLogging(@NotNull @NotNull Boolean debugLogging)
Session.setDebug(boolean)
so that it generates debug information. To get more
information out of the underlying JavaMail framework or out of Simple Java Mail, increase logging config of your chosen logging-framework.debugLogging
- Enables or disables debug logging with true
or false
.T disablingAllClientValidation(@NotNull @NotNull Boolean disableAllClientValidation)
If set to true
, this silences the client completely and just delegates all responsibility of correctness/security to the server.
disableAllClientValidation
- Enables or disables client-side email address validation (if configured) and CRLF injection scans. Default set to
false.T withSessionTimeout(@NotNull @NotNull Integer sessionTimeout)
Will configure a set of properties on the Session instance with the given value, of which the names depend on the transport strategy:
sessionTimeout
- Duration to use for session timeout.T withEmailValidator(@NotNull @NotNull com.sanctionco.jmail.EmailValidator emailValidator)
Mailer
instance.
Defaults to JMail.strictValidator()
.
EmailValidator
,
clearEmailValidator()
,
resetEmailValidator()
T withEmailDefaults(@NotNull @NotNull Email emailDefaults)
Email
to be used for default values on all emails coming through this Mailer
instance.emailDefaults
- The email to use as defaults.clearEmailDefaults()
T withEmailOverrides(@NotNull @NotNull Email emailoverrides)
Email
to be used for default values on all emails coming through this Mailer
instance.emailoverrides
- The email to use as defaults.clearEmailOverrides()
T withMaximumEmailSize(int maximumEmailSize)
EmailTooBigException
will be thrown (as the cause).maximumEmailSize
- Maximum size of an email (as MimeMessage) in bytes.clearMaximumEmailSize()
T withExecutorService(@NotNull @NotNull ExecutorService executorService)
Allows you to fully customize and manage the thread pool, threads and concurrency characteristics when sending in batch mode.
Without calling this, by default the NonJvmBlockingThreadPoolExecutor
is used:
LinkedBlockingQueue
NamedThreadFactory
, which creates named non-daemon threadsNote: What makes it NonJvm is that the default keepAliveTime is set to the lowest non-zero value (so 1), so that any threads will die off as soon as possible, as not to block the JVM from shutting down.
Note: Simple Java Mail will not shut down the provided executor service, even if the connection pool is being shut down. This will block the JVM from shutting down. The user is responsible for managing the provided executor's life cycle.
Note: this only works in combination with the "Advanced batch processing module".
executorService
- A custom executor service (ThreadPoolExecutor), replacing the NonJvmBlockingThreadPoolExecutor
.T withThreadPoolSize(@NotNull @NotNull Integer threadPoolSize)
Note: this is only used in combination with the "Advanced batch processing module".
threadPoolSize
- See main description.resetThreadPoolSize()
,
withThreadPoolSize(Integer)
T withThreadPoolKeepAliveTime(@NotNull @NotNull Integer threadPoolKeepAliveTime)
When set to zero, this keepAliveTime is applied only to extra threads, not core threads. This is the classic executor behavior, but this blocks the JVM from exiting.
Defaults to 1ms.
Note: this is only used in combination with the "Advanced batch processing module".
threadPoolKeepAliveTime
- Value in milliseconds. See main description for details.resetThreadPoolKeepAliveTime()
T withClusterKey(@NotNull @NotNull UUID clusterKey)
Mailer
instances represent
individual connection pools within the same cluster. Having multiple mailers using the same clusterKey
means those mailes form a cluster where mail-send action are rotated over connection pools stemming from these
mailer instances (this has implications for mailers defining connections differently from eachother, see documentation).
By default, a cluster key is uniquely generated, so for a single new mailer a new cluster is always generated, thus effectively nothing is clustered.
clusterKey
- See main description.T withConnectionPoolCoreSize(@NotNull @NotNull Integer connectionPoolCoreSize)
Note: this is only used in combination with the "Advanced batch processing module".
connectionPoolCoreSize
- See main description.T withConnectionPoolMaxSize(@NotNull @NotNull Integer connectionPoolMaxSize)
In addition, if your server makes connections wait, it means threads will be waiting on the Transport
instance to start their work load, instead of threads being blocked
on a claim for an available Transport
instance. In other words: by having an oversized connection pool, you inadvertently bypass the blocking claim mechanism of the
connection pool and wait on the Transport directly instead.
Note: this is only used in combination with the "Advanced batch processing module".
connectionPoolMaxSize
- See main description.T withConnectionPoolClaimTimeoutMillis(@NotNull @NotNull Integer connectionPoolClaimTimeoutMillis)
>0
, configures the connection pool to wait for a limited time after which the attempt to claim a Transport connection errors out.
The default is to wait indefinately until a connection becomes available in the pool.
Note: this is only used in combination with the "Advanced batch processing module".
connectionPoolClaimTimeoutMillis
- See main description.T withConnectionPoolExpireAfterMillis(@NotNull @NotNull Integer connectionPoolExpireAfterMillis)
>0
, configures the connection pool to automatically close connections after some milliseconds (default 5000) since last usage.
Note that if you combine this with withConnectionPoolCoreSize(Integer)
also >0
(default is 0), connections will keep
closing and opening to keep core pool populated until shut down.
Note: this is only used in combination with the "Advanced batch processing module".
connectionPoolExpireAfterMillis
- See main description.T withConnectionPoolLoadBalancingStrategy(@NotNull @NotNull LoadBalancingStrategy loadBalancingStrategy)
This is only relevant if you have multiple mail servers in one or more clusters. Currently, it is impossible to define different load balancing strategies for different clusters.
Note: this is only used in combination with the "Advanced batch processing module".
loadBalancingStrategy
- See main description.T withTransportModeLoggingOnly(@NotNull @NotNull Boolean transportModeLoggingOnly)
transportModeLoggingOnly
- Flag true
or false
that enables or disables logging only mode when sending emails.resetTransportModeLoggingOnly()
T trustingSSLHosts(String... sslHostsToTrust)
verifyingServerIdentity(boolean)
.
Passing an empty list resets the current session's trust behavior to the default, and is equivalent to never calling this method in the first place.
Security warning: Any certificate matching any of the provided host names will be accepted, regardless of the certificate issuer; attackers can abuse this behavior by serving a matching self-signed certificate during a man-in-the-middle attack.
This method sets the property mail.smtp.ssl.trust
to a space-separated list of the provided hosts
. If the provided list is
empty, mail.smtp.ssl.trust
is unset.
sslHostsToTrust
- See main description.mail.smtp.ssl.trust
,
trustingAllHosts(boolean)
,
Notes for use of SSL with JavaMailT trustingAllHosts(boolean trustAllHosts)
Note that this is not the same as server identity verification, which is enabled through verifyingServerIdentity(boolean)
.
It would be prudent to have at least one of these features turned on, lest you be vulnerable to man-in-the-middle attacks.
trustAllHosts
- See main description.trustingSSLHosts(String...)
,
Notes for use of SSL with JavaMailT verifyingServerIdentity(boolean verifyingServerIdentity)
Note that this is not the same as trustingAllHosts(boolean)
or trustingSSLHosts(String...)
.
It would be prudent to have at least one of these features turned on, lest you be vulnerable to man-in-the-middle attacks.
verifyingServerIdentity
- See main description.trustingAllHosts(boolean)
,
trustingSSLHosts(String...)
,
Notes for use of SSL with JavaMailT withProperties(@NotNull @NotNull Properties properties)
Session
when building a mailer.T withProperties(@NotNull @NotNull Map<String,String> properties)
withProperties(Properties)
,
clearProperties()
T withProperty(@NotNull @NotNull String propertyName, @Nullable @Nullable Object propertyValue)
null
. If provided, the value is always converted toString()
.propertyName
- The name of the property that wil be set on the internal Session object.propertyValue
- The text value of the property that wil be set on the internal Session object.withProperties(Properties)
,
clearProperties()
T withCustomMailer(@NotNull @NotNull CustomMailer customMailer)
CustomMailer
T resetDisableAllClientValidations()
disablingAllClientValidation(Boolean)
T resetSessionTimeout()
withSessionTimeout(Integer)
T resetEmailValidator()
JMail.strictValidator()
.T resetExecutorService()
Executors.newSingleThreadExecutor()
.
Note: this is only used in combination with the "Advanced batch processing module".
T resetThreadPoolSize()
Note: this is only used in combination with the "Advanced batch processing module".
withThreadPoolSize(Integer)
T resetThreadPoolKeepAliveTime()
Note: this is only used in combination with the "Advanced batch processing module".
withThreadPoolKeepAliveTime(Integer)
T resetTrustingAllHosts()
T resetVerifyingServerIdentity()
T resetClusterKey()
Mailer
.withClusterKey(UUID)
T resetConnectionPoolCoreSize()
Note: this is only used in combination with the "Advanced batch processing module".
withConnectionPoolCoreSize(Integer)
T resetConnectionPoolMaxSize()
Note: this is only used in combination with the "Advanced batch processing module".
withConnectionPoolMaxSize(Integer)
T resetConnectionPoolClaimTimeoutMillis()
Note: this is only used in combination with the "Advanced batch processing module".
T resetConnectionPoolExpireAfterMillis()
Note: this is only used in combination with the "Advanced batch processing module".
T resetConnectionPoolLoadBalancingStrategy()
Note: this is only used in combination with the "Advanced batch processing module".
T resetTransportModeLoggingOnly()
withTransportModeLoggingOnly(Boolean)
T clearProxy()
T clearEmailValidator()
null
, meaning validation won't take place.T clearEmailDefaults()
Email
instance null
, meaning no defaults will be applied.withEmailDefaults(Email)
T clearEmailOverrides()
Email
instance null
, meaning no overrides will be applied.withEmailOverrides(Email)
T clearMaximumEmailSize()
null
, meaning no size check will be performed.withMaximumEmailSize(int)
T clearTrustedSSLHosts()
T clearProperties()
withProperties(Properties)
Mailer buildMailer()
boolean isAsync()
async()
@Nullable @Nullable String getProxyHost()
withProxyHost(String)
@Nullable @Nullable Integer getProxyPort()
withProxyPort(Integer)
@Nullable @Nullable String getProxyUsername()
withProxyUsername(String)
@Nullable @Nullable String getProxyPassword()
withProxyPassword(String)
@Nullable @Nullable Integer getProxyBridgePort()
withProxyBridgePort(Integer)
boolean isDebugLogging()
withDebugLogging(Boolean)
boolean isDisableAllClientValidation()
disablingAllClientValidation(Boolean)
@Nullable @Nullable Integer getSessionTimeout()
withSessionTimeout(Integer)
@Nullable @Nullable com.sanctionco.jmail.EmailValidator getEmailValidator()
withEmailValidator(EmailValidator)
@Nullable @Nullable Email getEmailDefaults()
withEmailDefaults(Email)
@Nullable @Nullable Email getEmailOverrides()
withEmailOverrides(Email)
@Nullable @Nullable Integer getMaximumEmailSize()
withMaximumEmailSize(int)
@Nullable @Nullable ExecutorService getExecutorService()
OperationalConfig
is created for the
new Mailer
instance.withExecutorService(ExecutorService)
@NotNull @NotNull Integer getThreadPoolSize()
withThreadPoolSize(Integer)
@NotNull @NotNull Integer getThreadPoolKeepAliveTime()
withThreadPoolKeepAliveTime(Integer)
@Nullable @Nullable UUID getClusterKey()
withClusterKey(UUID)
@NotNull @NotNull Integer getConnectionPoolCoreSize()
withConnectionPoolCoreSize(Integer)
@NotNull @NotNull Integer getConnectionPoolMaxSize()
withConnectionPoolMaxSize(Integer)
@NotNull @NotNull Integer getConnectionPoolClaimTimeoutMillis()
@NotNull @NotNull Integer getConnectionPoolExpireAfterMillis()
@NotNull @NotNull LoadBalancingStrategy getConnectionPoolLoadBalancingStrategy()
@Nullable @Nullable List<String> getSslHostsToTrust()
trustingSSLHosts(String...)
boolean isTrustAllSSLHost()
trustingAllHosts(boolean)
boolean isVerifyingServerIdentity()
verifyingServerIdentity(boolean)
boolean isTransportModeLoggingOnly()
withTransportModeLoggingOnly(Boolean)
@Nullable @Nullable Properties getProperties()
withProperties(Properties)
@Nullable @Nullable CustomMailer getCustomMailer()
withCustomMailer(CustomMailer)
Copyright © 2009–2024. All rights reserved.