From e222f49c9d7539375283a26c1c0b397edc108edc Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Mon, 30 Sep 2019 01:04:28 +0300 Subject: [PATCH] Use send_certificate_checks configuration --- src/smtp.rs | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/smtp.rs b/src/smtp.rs index 5d8ba4654..34030f1a4 100644 --- a/src/smtp.rs +++ b/src/smtp.rs @@ -5,7 +5,7 @@ use crate::constants::*; use crate::context::Context; use crate::error::Error; use crate::events::Event; -use crate::login_param::LoginParam; +use crate::login_param::{CertificateChecks, LoginParam}; use crate::oauth2::*; #[derive(DebugStub)] @@ -68,13 +68,19 @@ impl Smtp { let domain = &lp.send_server; let port = lp.send_port as u16; - let tls = native_tls::TlsConnector::builder() - // see also: https://github.com/deltachat/deltachat-core-rust/issues/203 - .danger_accept_invalid_hostnames(true) - .danger_accept_invalid_certs(true) - .min_protocol_version(Some(DEFAULT_TLS_PROTOCOLS[0])) - .build() - .unwrap(); + let mut tls_builder = native_tls::TlsConnector::builder(); + let tls = match lp.send_certificate_checks { + CertificateChecks::Strict => &mut tls_builder, + CertificateChecks::AcceptInvalidHostnames => { + tls_builder.danger_accept_invalid_hostnames(true) + } + CertificateChecks::AcceptInvalidCertificates => tls_builder + .danger_accept_invalid_hostnames(true) + .danger_accept_invalid_certs(true), + } + .min_protocol_version(Some(DEFAULT_TLS_PROTOCOLS[0])) + .build() + .unwrap(); let tls_parameters = ClientTlsParameters::new(domain.to_string(), tls);