8 releases
new 0.2.6 | Apr 18, 2024 |
---|---|
0.2.5 | Jan 29, 2024 |
0.2.4 | Aug 15, 2023 |
0.2.3 | Jun 1, 2023 |
0.1.0 | Nov 12, 2022 |
#70 in Email
119 downloads per month
40KB
310 lines
mailgen
This crate allows you to generate pretty emails without all the hassle.
Inspired by the node.js package mailgen.
Examples
use mailgen::themes::DefaultTheme;
use mailgen::{Action, Branding, EmailBuilder, Greeting, Mailgen};
let theme = DefaultTheme::new();
let branding = Branding::new("test product", "https://testproduct.com");
let mailgen = Mailgen::new(&theme, branding);
let email = EmailBuilder::new()
.greeting(Greeting::Name("person name"))
.intro("test intro")
.intro("another intro")
.dictionary("test key", "test value")
.dictionary("test key 2", "test value 2")
.action(Action {
text: "Test Action",
link: "https://test.com/action",
color: Some(("black", "white")),
..Default::default()
})
.action(Action {
text: "Test Action 2",
link: "https://test.com/action2",
instructions: Some("test instruction"),
..Default::default()
})
.outro("test outr 1")
.outro("test outro 2")
.signature("test signature...")
.build();
let rendered = mailgen.render_text(&email)?;
std::fs::write("./email.txt", &rendered)?;
let rendered = mailgen.render_html(&email)?;
std::fs::write("./email.html", &rendered)?;
Dependencies
~0.4–9.5MB
~69K SLoC