Use opportunistic TLS in SMTP connections

If SSL is disabled, the SMTP ClientSecurity of the lettre crate
defaults to None, that is, an insecure connection. This is changed to
Opportunistic, which uses TLS if available. If TLS is not available,
the insecure connection is used (i.e., this change is backward
compatible).
pull/901/head
Samuel Leweke 5 years ago
parent 70f3ab8ec3
commit 5d3b765a23

@ -18,21 +18,21 @@ use chrono::NaiveDateTime;
fn mailer() -> SmtpTransport { fn mailer() -> SmtpTransport {
let host = CONFIG.smtp_host().unwrap(); let host = CONFIG.smtp_host().unwrap();
let client_security = if CONFIG.smtp_ssl() {
let tls = TlsConnector::builder() let tls = TlsConnector::builder()
.min_protocol_version(Some(Protocol::Tlsv11)) .min_protocol_version(Some(Protocol::Tlsv11))
.build() .build()
.unwrap(); .unwrap();
let params = ClientTlsParameters::new(host.clone(), tls); let tls_params = ClientTlsParameters::new(host.clone(), tls);
let client_security = if CONFIG.smtp_ssl() {
if CONFIG.smtp_explicit_tls() { if CONFIG.smtp_explicit_tls() {
ClientSecurity::Wrapper(params) ClientSecurity::Wrapper(tls_params)
} else { } else {
ClientSecurity::Required(params) ClientSecurity::Required(tls_params)
} }
} else { } else {
ClientSecurity::None ClientSecurity::Opportunistic(tls_params)
}; };
use std::time::Duration; use std::time::Duration;

Loading…
Cancel
Save