fix: use builder_dangerous for port 25 (local Stalwart), starttls_relay for 465/587
All checks were successful
BotServer CI/CD / build (push) Successful in 4m53s

This commit is contained in:
Rodrigo Rodriguez (Pragmatismo) 2026-04-04 20:25:59 -03:00
parent 61ae0cac82
commit f8e3b34a8a

View file

@ -353,16 +353,20 @@ impl EmailService {
.body(body.to_string()) .body(body.to_string())
.map_err(|e| format!("Failed to build email: {}", e))?; .map_err(|e| format!("Failed to build email: {}", e))?;
let mailer = if !smtp_user.is_empty() && !smtp_pass.is_empty() { let mailer = if smtp_port == 465 {
SmtpTransport::starttls_relay(&smtp_host)
.map_err(|e| format!("SMTP relay error: {}", e))?
.port(smtp_port)
.build()
} else if !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::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 { } else {
SmtpTransport::relay(&smtp_host) SmtpTransport::builder_dangerous(&smtp_host)
.map_err(|e| format!("SMTP relay error: {}", e))?
.port(smtp_port) .port(smtp_port)
.build() .build()
}; };
@ -439,16 +443,20 @@ impl EmailService {
) )
.map_err(|e| format!("Failed to build email: {}", e))?; .map_err(|e| format!("Failed to build email: {}", e))?;
let mailer = if !smtp_user.is_empty() && !smtp_pass.is_empty() { let mailer = if smtp_port == 465 {
SmtpTransport::starttls_relay(&smtp_host)
.map_err(|e| format!("SMTP relay error: {}", e))?
.port(smtp_port)
.build()
} else if !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::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 { } else {
SmtpTransport::relay(&smtp_host) SmtpTransport::builder_dangerous(&smtp_host)
.map_err(|e| format!("SMTP relay error: {}", e))?
.port(smtp_port) .port(smtp_port)
.build() .build()
}; };