v0.10.302 #2

Merged
didirus merged 289 commits from feature-clean into beta 2025-07-08 15:00:09 +00:00
3 changed files with 26 additions and 1 deletions
Showing only changes of commit 6f902e2107 - Show all commits
+2
View File
@@ -84,6 +84,8 @@ HCAPTCHA_SECRET=none
SMTP_USERNAME=none
SMTP_PASSWORD=none
SMTP_HOST=none
SMTP_PORT=465
SMTP_TLS=tls
SITE_VERIFY_EMAIL_PATH=none
SITE_RESET_PASSWORD_PATH=none
+22 -1
View File
@@ -1,8 +1,10 @@
use lettre::message::header::ContentType;
use lettre::message::Mailbox;
use lettre::transport::smtp::authentication::Credentials;
use lettre::transport::smtp::client::{Tls, TlsParameters};
use lettre::{Address, Message, SmtpTransport, Transport};
use thiserror::Error;
use tracing::warn;
#[derive(Error, Debug)]
pub enum MailError {
@@ -34,9 +36,28 @@ pub fn send_email_raw(
let username = dotenvy::var("SMTP_USERNAME")?;
let password = dotenvy::var("SMTP_PASSWORD")?;
let host = dotenvy::var("SMTP_HOST")?;
let port = dotenvy::var("SMTP_PORT")?.parse::<u16>().unwrap_or(465);
let creds = Credentials::new(username, password);
let tls_setting = match dotenvy::var("SMTP_TLS")?.as_str() {
"none" => Tls::None,
"opportunistic_start_tls" => {
Tls::Opportunistic(TlsParameters::new(host.to_string())?)
}
"requires_start_tls" => {
Tls::Required(TlsParameters::new(host.to_string())?)
}
"tls" => Tls::Wrapper(TlsParameters::new(host.to_string())?),
_ => {
warn!("Unrecognized SMTP TLS setting. Defaulting to TLS.");
Tls::Wrapper(TlsParameters::new(host.to_string())?)
}
};
let mailer = SmtpTransport::relay(&host)?.credentials(creds).build();
let mailer = SmtpTransport::relay(&host)?
.port(port)
.tls(tls_setting)
.credentials(creds)
.build();
mailer.send(&email)?;
+2
View File
@@ -425,6 +425,8 @@ pub fn check_env_vars() -> bool {
failed |= check_var::<String>("SMTP_USERNAME");
failed |= check_var::<String>("SMTP_PASSWORD");
failed |= check_var::<String>("SMTP_HOST");
failed |= check_var::<u16>("SMTP_PORT");
failed |= check_var::<String>("SMTP_TLS");
failed |= check_var::<String>("SITE_VERIFY_EMAIL_PATH");
failed |= check_var::<String>("SITE_RESET_PASSWORD_PATH");