You've already forked AstralRinth
v0.10.302 #2
@@ -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
|
||||
|
||||
@@ -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)?;
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user