diff --git a/src/email/types.rs b/src/email/types.rs index a42fc047..6c893698 100644 --- a/src/email/types.rs +++ b/src/email/types.rs @@ -358,13 +358,19 @@ impl EmailService { .map_err(|e| format!("SMTP relay error: {}", e))? .port(smtp_port) .build() - } else if !smtp_user.is_empty() && !smtp_pass.is_empty() { + } else if smtp_port == 587 && !smtp_user.is_empty() && !smtp_pass.is_empty() { let creds = Credentials::new(smtp_user, smtp_pass); SmtpTransport::starttls_relay(&smtp_host) .map_err(|e| format!("SMTP relay error: {}", e))? .port(smtp_port) .credentials(creds) .build() + } else if !smtp_user.is_empty() && !smtp_pass.is_empty() { + let creds = Credentials::new(smtp_user, smtp_pass); + SmtpTransport::builder_dangerous(&smtp_host) + .port(smtp_port) + .credentials(creds) + .build() } else { SmtpTransport::builder_dangerous(&smtp_host) .port(smtp_port) @@ -448,13 +454,19 @@ impl EmailService { .map_err(|e| format!("SMTP relay error: {}", e))? .port(smtp_port) .build() - } else if !smtp_user.is_empty() && !smtp_pass.is_empty() { + } else if smtp_port == 587 && !smtp_user.is_empty() && !smtp_pass.is_empty() { let creds = Credentials::new(smtp_user, smtp_pass); SmtpTransport::starttls_relay(&smtp_host) .map_err(|e| format!("SMTP relay error: {}", e))? .port(smtp_port) .credentials(creds) .build() + } else if !smtp_user.is_empty() && !smtp_pass.is_empty() { + let creds = Credentials::new(smtp_user, smtp_pass); + SmtpTransport::builder_dangerous(&smtp_host) + .port(smtp_port) + .credentials(creds) + .build() } else { SmtpTransport::builder_dangerous(&smtp_host) .port(smtp_port)