Crate mailgen

source ·
Expand description

§Overview

This crate allows you to generate pretty emails without all the hassle. Take a look at the README for screenshots.

§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()
    .summary("this is a test email that contains stuff to test...")
    .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-doctest.txt", rendered)?;

let rendered = mailgen.render_html(&email)?;
std::fs::write("./email-doctest.html", rendered)?;

Modules§

Structs§

  • Action is an action the user can do on the email (click on a button)
  • Product represents your company product (brand) Appears in header & footer of e-mails
  • Email for rendering
  • Email Builder

Enums§