From b131c7e311f60354a5247567d9f70375416f4e0a Mon Sep 17 00:00:00 2001 From: "Rodrigo Rodriguez (Pragmatismo)" Date: Sat, 4 Apr 2026 21:46:06 -0300 Subject: [PATCH] fix: use builder_dangerous with credentials for port 25 (like Roundcube does) --- src/email/types.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) 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)