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