From 0e6f6e612ab22c975ea9cbedaac17c403e691ee7 Mon Sep 17 00:00:00 2001 From: Stefan Melmuk Date: Thu, 6 Oct 2022 11:59:47 +0200 Subject: [PATCH] use static_files() for email attachments Apply suggestions from code review Co-authored-by: Mathijs van Veluw --- src/api/mod.rs | 1 + src/api/web.rs | 2 +- src/config.rs | 2 +- src/mail.rs | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/api/mod.rs b/src/api/mod.rs index b9e9f38c..7bff978b 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -22,6 +22,7 @@ pub use crate::api::{ notifications::{start_notification_server, Notify, UpdateType}, web::catchers as web_catchers, web::routes as web_routes, + web::static_files, }; use crate::util; diff --git a/src/api/web.rs b/src/api/web.rs index 2ad94db8..cfc4b9e0 100644 --- a/src/api/web.rs +++ b/src/api/web.rs @@ -89,7 +89,7 @@ fn alive(_conn: DbConn) -> Json { } #[get("/vw_static/")] -fn static_files(filename: String) -> Result<(ContentType, &'static [u8]), Error> { +pub fn static_files(filename: String) -> Result<(ContentType, &'static [u8]), Error> { match filename.as_ref() { "mail-github.png" => Ok((ContentType::PNG, include_bytes!("../static/images/mail-github.png"))), "logo-gray.png" => Ok((ContentType::PNG, include_bytes!("../static/images/logo-gray.png"))), diff --git a/src/config.rs b/src/config.rs index 4cac70eb..936f15df 100644 --- a/src/config.rs +++ b/src/config.rs @@ -767,7 +767,7 @@ fn generate_smtp_img_src(embed_images: bool, domain: &str) -> String { if embed_images { "cid:".to_string() } else { - format!("{}/vw_static/", domain) + format!("{domain}/vw_static/") } } diff --git a/src/mail.rs b/src/mail.rs index e613da6f..fce76e17 100644 --- a/src/mail.rs +++ b/src/mail.rs @@ -496,11 +496,11 @@ pub async fn send_test(address: &str) -> EmptyResult { } async fn send_email(address: &str, subject: &str, body_html: String, body_text: String) -> EmptyResult { - let logo_gray_body = Body::new(include_bytes!("static/images/logo-gray.png").to_vec()); - let mail_github_body = Body::new(include_bytes!("static/images/mail-github.png").to_vec()); let smtp_from = &CONFIG.smtp_from(); let body = if CONFIG.smtp_embed_images() { + let logo_gray_body = Body::new(crate::api::static_files("logo-gray.png".to_string()).unwrap().1.to_vec()); + let mail_github_body = Body::new(crate::api::static_files("mail-github.png".to_string()).unwrap().1.to_vec()); MultiPart::alternative().singlepart(SinglePart::plain(body_text)).multipart( MultiPart::related() .singlepart(SinglePart::html(body_html))