X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Futils%2Fsrc%2Femail.rs;h=d9ac1710d86762f8e2760b2b376e702611b0fdac;hb=c883a49a4096b171f324d44c9fcacda55ed361ee;hp=eb5e0d1c50c32193615410b700e982bd7514514b;hpb=1410c5659ca53feeccfd0ddf1e944984cc601898;p=lemmy.git diff --git a/crates/utils/src/email.rs b/crates/utils/src/email.rs index eb5e0d1c..d9ac1710 100644 --- a/crates/utils/src/email.rs +++ b/crates/utils/src/email.rs @@ -1,4 +1,4 @@ -use crate::settings::structs::Settings; +use crate::{settings::structs::Settings, LemmyError}; use lettre::{ message::{header, Mailbox, MultiPart, SinglePart}, transport::smtp::{ @@ -20,12 +20,21 @@ pub fn send_email( to_username: &str, html: &str, settings: &Settings, -) -> Result<(), String> { - let email_config = settings.email.to_owned().ok_or("no_email_setup")?; +) -> Result<(), LemmyError> { + let email_config = settings + .email + .to_owned() + .ok_or_else(|| LemmyError::from_message("no_email_setup"))?; let domain = settings.hostname.to_owned(); let (smtp_server, smtp_port) = { let email_and_port = email_config.smtp_server.split(':').collect::>(); + if email_and_port.len() == 1 { + return Err(LemmyError::from_message( + "email.smtp_server needs a port, IE smtp.xxx.com:465", + )); + } + ( email_and_port[0], email_and_port[1] @@ -87,6 +96,6 @@ pub fn send_email( match result { Ok(_) => Ok(()), - Err(e) => Err(e.to_string()), + Err(e) => Err(LemmyError::from(e).with_message("email_send_failed")), } }