fix: use builder_dangerous with credentials for port 25 (like Roundcube does)
All checks were successful
BotServer CI/CD / build (push) Successful in 5m1s

This commit is contained in:
Rodrigo Rodriguez (Pragmatismo) 2026-04-04 21:46:06 -03:00
parent b8bf4ed5bb
commit b131c7e311

View file

@ -358,13 +358,19 @@ impl EmailService {
.map_err(|e| format!("SMTP relay error: {}", e))? .map_err(|e| format!("SMTP relay error: {}", e))?
.port(smtp_port) .port(smtp_port)
.build() .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); let creds = Credentials::new(smtp_user, smtp_pass);
SmtpTransport::starttls_relay(&smtp_host) SmtpTransport::starttls_relay(&smtp_host)
.map_err(|e| format!("SMTP relay error: {}", e))? .map_err(|e| format!("SMTP relay error: {}", e))?
.port(smtp_port) .port(smtp_port)
.credentials(creds) .credentials(creds)
.build() .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 { } else {
SmtpTransport::builder_dangerous(&smtp_host) SmtpTransport::builder_dangerous(&smtp_host)
.port(smtp_port) .port(smtp_port)
@ -448,13 +454,19 @@ impl EmailService {
.map_err(|e| format!("SMTP relay error: {}", e))? .map_err(|e| format!("SMTP relay error: {}", e))?
.port(smtp_port) .port(smtp_port)
.build() .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); let creds = Credentials::new(smtp_user, smtp_pass);
SmtpTransport::starttls_relay(&smtp_host) SmtpTransport::starttls_relay(&smtp_host)
.map_err(|e| format!("SMTP relay error: {}", e))? .map_err(|e| format!("SMTP relay error: {}", e))?
.port(smtp_port) .port(smtp_port)
.credentials(creds) .credentials(creds)
.build() .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 { } else {
SmtpTransport::builder_dangerous(&smtp_host) SmtpTransport::builder_dangerous(&smtp_host)
.port(smtp_port) .port(smtp_port)