diff --git a/src/configure.rs b/src/configure.rs index 36da8fc62..0e879d5af 100644 --- a/src/configure.rs +++ b/src/configure.rs @@ -432,7 +432,6 @@ async fn get_configured_param( .collect(), smtp_user: param.smtp.user.clone(), smtp_password, - proxy_config: ProxyConfig::load(ctx).await?, provider, certificate_checks: match param.certificate_checks { EnteredCertificateChecks::Automatic => ConfiguredCertificateChecks::Automatic, @@ -454,7 +453,8 @@ async fn configure(ctx: &Context, param: &EnteredLoginParam) -> Result Result Result, - pub provider: Option<&'static Provider>, /// TLS options: whether to allow invalid certificates and/or @@ -742,8 +739,6 @@ impl ConfiguredLoginParam { }]; } - let proxy_config = ProxyConfig::load(context).await?; - Ok(Some(ConfiguredLoginParam { addr, imap, @@ -754,7 +749,6 @@ impl ConfiguredLoginParam { smtp_password: send_pw, certificate_checks, provider, - proxy_config, oauth2, })) } @@ -837,11 +831,11 @@ impl ConfiguredLoginParam { Ok(()) } - pub(crate) fn strict_tls(&self) -> bool { + pub(crate) fn strict_tls(&self, connected_through_proxy: bool) -> bool { let provider_strict_tls = self.provider.map(|provider| provider.opt.strict_tls); match self.certificate_checks { ConfiguredCertificateChecks::OldAutomatic => { - provider_strict_tls.unwrap_or(self.proxy_config.is_some()) + provider_strict_tls.unwrap_or(connected_through_proxy) } ConfiguredCertificateChecks::Automatic => provider_strict_tls.unwrap_or(true), ConfiguredCertificateChecks::Strict => true, @@ -962,8 +956,6 @@ mod tests { }], smtp_user: "".to_string(), smtp_password: "bar".to_string(), - // proxy_config is not saved by `save_to_database`, using default value - proxy_config: None, provider: None, certificate_checks: ConfiguredCertificateChecks::Strict, oauth2: false, @@ -1066,7 +1058,6 @@ mod tests { ], smtp_user: "alice@posteo.de".to_string(), smtp_password: "foobarbaz".to_string(), - proxy_config: None, provider: get_provider_by_id("posteo"), certificate_checks: ConfiguredCertificateChecks::Strict, oauth2: false, diff --git a/src/smtp.rs b/src/smtp.rs index 945196b7a..6fe94479f 100644 --- a/src/smtp.rs +++ b/src/smtp.rs @@ -90,13 +90,14 @@ impl Smtp { let lp = ConfiguredLoginParam::load(context) .await? .context("Not configured")?; + let proxy_config = ProxyConfig::load(context).await?; self.connect( context, &lp.smtp, &lp.smtp_password, - &lp.proxy_config, + &proxy_config, &lp.addr, - lp.strict_tls(), + lp.strict_tls(proxy_config.is_some()), lp.oauth2, ) .await