Skip to content

Mail

Larastvel provides SMTP and log mailers with a builder API for creating emails. The #[mail] macro generates clean mailable structs — see the full reference.

Mailers

SMTP

rust
use larastvel_core::mail::{SmtpMailer, MailManager};

let smtp = SmtpMailer::new("smtp", "smtp.example.com", 587, "user", "pass")?;

let mut manager = MailManager::new("smtp");
manager.register("smtp", smtp);

Log Mailer

rust
use larastvel_core::mail::LogMailer;

manager.register("log", LogMailer::new("log"));

Building Mail

rust
use larastvel_core::mail::Mailable;

// Plain text
let email = Mailable::new(
    vec!["user@example.com".to_string()],
    "Welcome!",
    "Thank you for joining.",
);

// HTML
let email = Mailable::html(
    vec!["user@example.com".to_string()],
    "Welcome!",
    "<h1>Welcome</h1><p>Thanks for joining!</p>",
);

// Builder methods
let email = email
    .from("noreply@example.com")
    .reply_to("support@example.com")
    .cc(vec!["admin@example.com".to_string()])
    .bcc(vec!["audit@example.com".to_string()]);

Sending

rust
let mailer = manager.default_mailer()?;
mailer.send(email).await?;

Released under the MIT License.