From 0f9b439b785b08e46cb973346e9a6f29d3e44e37 Mon Sep 17 00:00:00 2001 From: kieran Date: Thu, 5 Dec 2024 15:01:41 +0000 Subject: [PATCH] feat: email template --- email.html | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/worker.rs | 10 ++++++++-- 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 email.html diff --git a/email.html b/email.html new file mode 100644 index 0000000..33e57bc --- /dev/null +++ b/email.html @@ -0,0 +1,54 @@ + + + + LNVPS + + + + + + + +
+
+ LNVPS + logo +
+
+

%%_MESSAGE_%%

+
+ + (c) 2024 LNVPS.net + +
+ + \ No newline at end of file diff --git a/src/worker.rs b/src/worker.rs index 947c693..d05eb84 100644 --- a/src/worker.rs +++ b/src/worker.rs @@ -5,7 +5,7 @@ use crate::settings::{Settings, SmtpConfig}; use crate::status::{VmRunningState, VmState, VmStateCache}; use anyhow::Result; use chrono::{Days, Utc}; -use lettre::message::MessageBuilder; +use lettre::message::{MessageBuilder, MultiPart}; use lettre::transport::smtp::authentication::Credentials; use lettre::AsyncTransport; use lettre::{AsyncSmtpTransport, Tokio1Executor, Transport}; @@ -224,7 +224,13 @@ impl Worker { if let Some(f) = &smtp.from { b = b.from(f.parse()?); } - let msg = b.body(message)?; + let template = include_str!("../email.html"); + let html = MultiPart::alternative_plain_html( + message.clone(), + template.replace("%%_MESSAGE_%%", &message), + ); + + let msg = b.multipart(html)?; let sender = AsyncSmtpTransport::::relay(&smtp.server)? .credentials(Credentials::new(