diff --git a/crates/email/src/transport.rs b/crates/email/src/transport.rs index 435ef5d1..6691fb0d 100644 --- a/crates/email/src/transport.rs +++ b/crates/email/src/transport.rs @@ -75,8 +75,30 @@ impl Transport { ) -> Result { let mut t = match mode { SmtpMode::Plain => AsyncSmtpTransport::::builder_dangerous(hostname), - SmtpMode::StartTls => AsyncSmtpTransport::::starttls_relay(hostname)?, - SmtpMode::Tls => AsyncSmtpTransport::::relay(hostname)?, + SmtpMode::StartTls => { + let tls_parameters = + lettre::transport::smtp::client::TlsParameters::builder(hostname.to_owned()) + .dangerous_accept_invalid_certs(true) + .build()?; + + AsyncSmtpTransport::::builder_dangerous(hostname) + .port(lettre::transport::smtp::SUBMISSION_PORT) + .tls(lettre::transport::smtp::client::Tls::Required( + tls_parameters, + )) + } + SmtpMode::Tls => { + let tls_parameters = + lettre::transport::smtp::client::TlsParameters::builder(hostname.to_owned()) + .dangerous_accept_invalid_certs(true) + .build()?; + + AsyncSmtpTransport::::builder_dangerous(hostname) + .port(lettre::transport::smtp::SUBMISSIONS_PORT) + .tls(lettre::transport::smtp::client::Tls::Wrapper( + tls_parameters, + )) + } }; if let Some(credentials) = credentials {