Browse Source
			
			
			use static_files() for email attachments
			
				Apply suggestions from code review
Co-authored-by: Mathijs van Veluw <black.dex@gmail.com>
			
			
				pull/2784/head
			
			
		 
		
			
				
					
						
						Stefan Melmuk
					
					3 years ago
					
				 
				
			 
		 
		
			
				
					
					No known key found for this signature in database
					
						
							GPG Key ID: 817020C608FE9C09
						
					
				
			
		
		
		
	
		
			
				 4 changed files with 
5 additions and 
4 deletions
			 
			
		 
		
			
				- 
					
					
					 
					src/api/mod.rs
				
 
			
				- 
					
					
					 
					src/api/web.rs
				
 
			
				- 
					
					
					 
					src/config.rs
				
 
			
				- 
					
					
					 
					src/mail.rs
				
 
			
		
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -22,6 +22,7 @@ pub use crate::api::{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    notifications::{start_notification_server, Notify, UpdateType}, | 
					 | 
					 | 
					    notifications::{start_notification_server, Notify, UpdateType}, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    web::catchers as web_catchers, | 
					 | 
					 | 
					    web::catchers as web_catchers, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    web::routes as web_routes, | 
					 | 
					 | 
					    web::routes as web_routes, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    web::static_files, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					}; | 
					 | 
					 | 
					}; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					use crate::util; | 
					 | 
					 | 
					use crate::util; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -89,7 +89,7 @@ fn alive(_conn: DbConn) -> Json<String> { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#[get("/vw_static/<filename>")] | 
					 | 
					 | 
					#[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() { | 
					 | 
					 | 
					    match filename.as_ref() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        "mail-github.png" => Ok((ContentType::PNG, include_bytes!("../static/images/mail-github.png"))), | 
					 | 
					 | 
					        "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"))), | 
					 | 
					 | 
					        "logo-gray.png" => Ok((ContentType::PNG, include_bytes!("../static/images/logo-gray.png"))), | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -767,7 +767,7 @@ fn generate_smtp_img_src(embed_images: bool, domain: &str) -> String { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    if embed_images { | 
					 | 
					 | 
					    if embed_images { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        "cid:".to_string() | 
					 | 
					 | 
					        "cid:".to_string() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } else { | 
					 | 
					 | 
					    } else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        format!("{}/vw_static/", domain) | 
					 | 
					 | 
					        format!("{domain}/vw_static/") | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -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 { | 
					 | 
					 | 
					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 smtp_from = &CONFIG.smtp_from(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    let body = if CONFIG.smtp_embed_images() { | 
					 | 
					 | 
					    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::alternative().singlepart(SinglePart::plain(body_text)).multipart( | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            MultiPart::related() | 
					 | 
					 | 
					            MultiPart::related() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                .singlepart(SinglePart::html(body_html)) | 
					 | 
					 | 
					                .singlepart(SinglePart::html(body_html)) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |