Skip to main content

Crate wae_email

Crate wae_email 

Source
Expand description

§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();

Modules§

mime
MIME 消息构建模块
sendmail
Sendmail 传输模块
smtp
SMTP 协议客户端实现

Structs§

DirectEmailProvider
直接交付邮件提供者
SendmailEmailProvider
Sendmail 邮件提供者
SmtpConfig
SMTP 配置
SmtpEmailProvider
SMTP 邮件提供者

Traits§

EmailProvider
邮件提供者 trait