diff --git a/config_sample.toml b/config_sample.toml index 4cc2794..4a6e694 100644 --- a/config_sample.toml +++ b/config_sample.toml @@ -17,6 +17,7 @@ transport = "File" #or Smtp from = "from@address.cz" path = "Maildir" #server = "smtp.server.cz" +#port = 25 #user = "user" #password = "password" #tls = true diff --git a/src/backend/mail.rs b/src/backend/mail.rs index e332cd6..9e98832 100644 --- a/src/backend/mail.rs +++ b/src/backend/mail.rs @@ -107,6 +107,11 @@ cfg_if! { if #[cfg(feature = "ssr")] { } else { AsyncSmtpTransport::::relay(&self.server().clone().unwrap_or_default()) }.expect("Cannot create SMTP mail transport"); + let transport = if let Some(p) = self.port() { + transport.port(p) + } else { + transport + }; if self.user().is_some() && self.password().is_some() { let cred = Credentials::new(self.user().clone().unwrap(), self.password().clone().unwrap()); transport.credentials(cred).build().send(msg.build_mail(self.from().to_string())?).await?; diff --git a/src/config.rs b/src/config.rs index d4abf96..83294da 100644 --- a/src/config.rs +++ b/src/config.rs @@ -65,6 +65,7 @@ pub struct Mailing { from: String, path: Option, server: Option, + port: Option, user: Option, password: Option, tls: Option @@ -84,6 +85,9 @@ impl Mailing { pub fn server(&self) -> &Option { &self.server } + pub fn port(&self) -> Option { + self.port + } pub fn user(&self) -> &Option { &self.user }