commit c52adef919419a1e823fbc26c49aaef9032248ff
parent cbb92bcbc03face72b17932c421b1b61224e2c7c
Author: BlackDex <black.dex@gmail.com>
Date: Wed, 6 Nov 2019 21:39:33 +0100
Added configurable smtp timeout.
- Added config option for smtp timeout
- Lowered default timeout to 15 seconds instead of default 60.
Diffstat:
3 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/.env.template b/.env.template
@@ -157,3 +157,4 @@
# SMTP_USERNAME=username
# SMTP_PASSWORD=password
# SMTP_AUTH_MECHANISM="Plain"
+# SMTP_TIMEOUT=15
diff --git a/src/config.rs b/src/config.rs
@@ -350,6 +350,8 @@ make_config! {
smtp_password: Pass, true, option;
/// Json form auth mechanism |> Defaults for ssl is "Plain" and "Login" and nothing for non-ssl connections. Possible values: ["Plain", "Login", "Xoauth2"]
smtp_auth_mechanism: String, true, option;
+ /// SMTP connection timeout |> Number of seconds when to stop trying to connect to the SMTP server
+ smtp_timeout: u64, true, def, 15;
},
/// Email 2FA Settings
diff --git a/src/mail.rs b/src/mail.rs
@@ -33,6 +33,8 @@ fn mailer() -> SmtpTransport {
ClientSecurity::None
};
+ use std::time::Duration;
+
let smtp_client = SmtpClient::new((host.as_str(), CONFIG.smtp_port()), client_security).unwrap();
let smtp_client = match (&CONFIG.smtp_username(), &CONFIG.smtp_password()) {
@@ -53,6 +55,7 @@ fn mailer() -> SmtpTransport {
smtp_client
.smtp_utf8(true)
+ .timeout(Some(Duration::from_secs(CONFIG.smtp_timeout())))
.connection_reuse(ConnectionReuseParameters::NoReuse)
.transport()
}