pub struct EgressPathConfig {Show 34 fields
pub connection_limit: LimitSpec,
pub additional_connection_limits: OrderMap<String, LimitSpec>,
pub enable_tls: Tls,
pub enable_mta_sts: bool,
pub enable_dane: bool,
pub enable_pipelining: bool,
pub enable_rset: bool,
pub tls_prefer_openssl: bool,
pub openssl_cipher_list: Option<String>,
pub openssl_cipher_suites: Option<String>,
pub openssl_options: Option<SslOptions>,
pub rustls_cipher_suites: Vec<SupportedCipherSuite>,
pub client_timeouts: SmtpClientTimeouts,
pub max_ready: usize,
pub consecutive_connection_failures_before_delay: usize,
pub smtp_port: u16,
pub smtp_auth_plain_username: Option<String>,
pub smtp_auth_plain_password: Option<KeySource>,
pub allow_smtp_auth_plain_without_tls: bool,
pub max_message_rate: Option<ThrottleSpec>,
pub additional_message_rate_throttles: OrderMap<String, ThrottleSpec>,
pub max_connection_rate: Option<ThrottleSpec>,
pub max_deliveries_per_connection: usize,
pub prohibited_hosts: CidrSet,
pub skip_hosts: CidrSet,
pub ehlo_domain: Option<String>,
pub aggressive_connection_opening: bool,
pub refresh_interval: Duration,
pub refresh_strategy: ConfigRefreshStrategy,
pub provider_name: Option<String>,
pub remember_broken_tls: Option<Duration>,
pub opportunistic_tls_reconnect_on_failed_handshake: bool,
pub use_lmtp: bool,
pub reconnect_strategy: ReconnectStrategy,
}
Fields§
§connection_limit: LimitSpec
§additional_connection_limits: OrderMap<String, LimitSpec>
§enable_tls: Tls
§enable_mta_sts: bool
§enable_dane: bool
§enable_pipelining: bool
§enable_rset: bool
§tls_prefer_openssl: bool
§openssl_cipher_list: Option<String>
§openssl_cipher_suites: Option<String>
§openssl_options: Option<SslOptions>
§rustls_cipher_suites: Vec<SupportedCipherSuite>
§client_timeouts: SmtpClientTimeouts
§max_ready: usize
§consecutive_connection_failures_before_delay: usize
§smtp_port: u16
§smtp_auth_plain_username: Option<String>
§smtp_auth_plain_password: Option<KeySource>
§allow_smtp_auth_plain_without_tls: bool
§max_message_rate: Option<ThrottleSpec>
§additional_message_rate_throttles: OrderMap<String, ThrottleSpec>
§max_connection_rate: Option<ThrottleSpec>
§max_deliveries_per_connection: usize
§prohibited_hosts: CidrSet
§skip_hosts: CidrSet
§ehlo_domain: Option<String>
§aggressive_connection_opening: bool
§refresh_interval: Duration
How long to wait between calls to get_egress_path_config for any given ready queue. Making this longer uses fewer resources (in aggregate) but means that it will take longer to detect and adjust to changes in the queue configuration.
refresh_strategy: ConfigRefreshStrategy
§provider_name: Option<String>
Specify an explicit provider name that should apply to this path. The provider name will be used when computing metrics rollups by provider. If omitted, then
remember_broken_tls: Option<Duration>
If set, a process-local cache will be used to remember if a site has broken TLS for the duration specified. Once encountered, we will pretend that EHLO didn’t advertise STARTTLS on subsequent connection attempts.
opportunistic_tls_reconnect_on_failed_handshake: bool
If true, when a TLS handshake fails and TLS is set to opportunistic, we will re-connect to that host with TLS disabled.
use_lmtp: bool
If true, rather than ESMTP, use the LMTP protocol
reconnect_strategy: ReconnectStrategy
How to behave if we experience either a 421 response, an IO Error, or a timeout while talking to the peer.
Trait Implementations§
Source§impl Clone for EgressPathConfig
impl Clone for EgressPathConfig
Source§fn clone(&self) -> EgressPathConfig
fn clone(&self) -> EgressPathConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for EgressPathConfig
impl Debug for EgressPathConfig
Source§impl Default for EgressPathConfig
impl Default for EgressPathConfig
Source§impl<'de> Deserialize<'de> for EgressPathConfig
impl<'de> Deserialize<'de> for EgressPathConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl FromLua for EgressPathConfigwhere
Self: 'static + Clone,
impl FromLua for EgressPathConfigwhere
Self: 'static + Clone,
Source§impl PartialEq for EgressPathConfig
impl PartialEq for EgressPathConfig
Source§impl Serialize for EgressPathConfig
impl Serialize for EgressPathConfig
Source§impl UserData for EgressPathConfig
impl UserData for EgressPathConfig
Source§fn add_methods<M: UserDataMethods<Self>>(methods: &mut M)
fn add_methods<M: UserDataMethods<Self>>(methods: &mut M)
§fn add_fields<F>(fields: &mut F)where
F: UserDataFields<Self>,
fn add_fields<F>(fields: &mut F)where
F: UserDataFields<Self>,
impl StructuralPartialEq for EgressPathConfig
Auto Trait Implementations§
impl Freeze for EgressPathConfig
impl !RefUnwindSafe for EgressPathConfig
impl Send for EgressPathConfig
impl Sync for EgressPathConfig
impl Unpin for EgressPathConfig
impl !UnwindSafe for EgressPathConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FromLuaMulti for Twhere
T: FromLua,
impl<T> FromLuaMulti for Twhere
T: FromLua,
§fn from_lua_multi(values: MultiValue, lua: &Lua) -> Result<T, Error>
fn from_lua_multi(values: MultiValue, lua: &Lua) -> Result<T, Error>
fn from_lua_args( args: MultiValue, i: usize, to: Option<&str>, lua: &Lua, ) -> Result<T, Error>
unsafe fn from_stack_multi(nvals: i32, lua: &RawLua) -> Result<T, Error>
unsafe fn from_stack_args( nargs: i32, i: usize, to: Option<&str>, lua: &RawLua, ) -> Result<T, Error>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more