Browse Source

use static_files() for email attachments

Apply suggestions from code review

Co-authored-by: Mathijs van Veluw <[email protected]>
Stefan Melmuk 3 years ago
parent
commit
4289663a16
4 changed files with 5 additions and 4 deletions
  1. 1 0
      src/api/mod.rs
  2. 1 1
      src/api/web.rs
  3. 1 1
      src/config.rs
  4. 2 2
      src/mail.rs

+ 1 - 0
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;
 

+ 1 - 1
src/api/web.rs

@@ -89,7 +89,7 @@ fn alive(_conn: DbConn) -> Json<String> {
 }
 
 #[get("/vw_static/<filename>")]
-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"))),

+ 1 - 1
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/")
     }
 }
 

+ 2 - 2
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))