wae-email 0.0.2

WAE Email - 邮件服务抽象层,支持 SMTP/Sendmail/Direct
Documentation

WAE Email - 邮件服务抽象层

提供统一的邮件发送服务抽象,支持 SMTP、Sendmail 和直接交付。

深度融合 tokio 运行时,所有邮件发送操作都是异步的。

模块结构

  • [mime] - MIME 消息构建,支持纯文本、HTML、附件
  • [smtp] - SMTP 协议客户端,支持 STARTTLS 和认证
  • [sendmail] - Sendmail 传输,通过本地命令发送邮件

示例

use wae_email::{SmtpEmailProvider, SmtpConfig, EmailProvider};

#[tokio::main]
async fn main() {
    let config = SmtpConfig {
        host: "smtp.example.com".to_string(),
        port: 587,
        username: "user@example.com".to_string(),
        password: "password".to_string(),
        from_email: "sender@example.com".to_string(),
    };

    let provider = SmtpEmailProvider::new(config);
    provider.send_email("recipient@example.com", "Subject", "Body").await.unwrap();
}

邮件模块 - 提供邮件发送功能。

主要功能

  • SMTP 支持: 标准 SMTP 协议邮件发送
  • 模板渲染: 支持邮件模板
  • 附件支持: 发送带附件的邮件
  • 异步发送: 非阻塞邮件发送

技术栈

  • 邮件发送: lettre
  • 异步运行时: Tokio

使用示例

use wae_email::{SmtpEmailProvider, SmtpConfig, EmailProvider};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = SmtpConfig {
        host: "smtp.example.com".to_string(),
        port: 587,
        username: "user@example.com".to_string(),
        password: "password".to_string(),
        from_email: "sender@example.com".to_string(),
    };

    let provider = SmtpEmailProvider::new(config);
    provider.send_email("recipient@example.com", "Subject", "Body").await?;
    Ok(())
}

模板支持

use wae_email::mime::EmailBuilder;

let email = EmailBuilder::new()
    .to("user@example.com")
    .subject("验证码")
    .body("验证码: 123456")
    .build();