2 个版本
0.11.8 | 2024 年 4 月 27 日 |
---|---|
0.11.7 | 2024 年 4 月 27 日 |
89 在 电子邮件 中排名
29 每月下载次数
495KB
10K SLoC
yhy_net_lettre
部分兼容RFC 2822
lib.rs
:
Lettre 是一个允许创建和发送消息的邮件库。它提供
- 易于使用的邮件构建器
- 可插拔的邮件传输
- Unicode 支持
- 安全默认值
- 异步支持
Lettre 需要 Rust 1.70 或更高版本。
功能
本节列出每个 lettre 功能并简要说明。更多关于每个模块的信息可以在相应的模块页面中找到。
带有 📫
的功能默认启用。
类型化消息构建器
强类型 message
构建器
- builder 📫: 启用
Message
构建器 - hostname 📫: 尝试在
Message-ID
头部中使用实际系统主机名
SMTP 传输
使用 SMTP
发送电子邮件
- smtp-transport 📫: 启用 SMTP 传输
- pool 📫: SMTP 传输的连接池
- hostname 📫: 尝试在 SMTP
CLIENTID
中使用实际系统主机名
通过 native-tls crate 的 TLS 的 SMTP
使用 native-tls
crate 的 TLS 加密的 SMTP 连接
在 Windows 上使用 schannel,在 macOS 上使用 Security-Framework,在 Linux 上使用 OpenSSL。
- native-tls 📫: API 同步版本的 TLS 支持
- tokio1-native-tls: API
tokio1
异步版本的 TLS 支持
注意:native-tls 不支持 async-std
通过 boring crate (Boring TLS) 的 TLS 的 SMTP
使用 boring-tls
crate 的 TLS 加密的 SMTP 连接
- boring-tls: API 同步版本的 TLS 支持
- tokio1-boring-tls: API
tokio1
异步版本的 TLS 支持
注意:boring-tls 不支持 async-std
通过 rustls crate 的 TLS 的 SMTP
使用 rustls-tls
crate 的 TLS 加密的 SMTP 连接
rustls 使用 ring 作为密码学实现。因此,并非所有 Rust 的目标都受到支持。
- rustls-tls:API 同步版本的 TLS 支持
- tokio1-rustls-tls:API 异步版本
tokio1
的 TLS 支持 - async-std1-rustls-tls:API 异步版本
async-std1
的 TLS 支持
Sendmail 传输
使用 sendmail
命令发送电子邮件
- sendmail-transport:启用
sendmail
传输
文件传输
将电子邮件保存为 .eml
file
- file-transport:启用文件传输(将电子邮件保存到
.eml
文件中) - file-transport-envelope:允许将信封写入 JSON 文件(此外将信封保存到
.json
文件中)
异步执行运行时
使用 tokio 或 async-std 作为发送电子邮件的异步执行运行时
必须选择正确的运行时版本,以便让 lettre 正确工作。例如,从 Tokio 1.x 上下文发送电子邮件时,必须使用 Tokio 1.x 执行器(Tokio1Executor
)。使用不同版本(例如 Tokio 0.2.x)或 async-std 会导致运行时恐慌。
- tokio1:允许使用 Tokio 1.x 异步发送电子邮件
- async-std1:允许使用 async-std 1.x 异步发送电子邮件
注意:native-tls 不支持 async-std
其他功能
附加功能
- serde:实体的序列化和反序列化
- tracing:使用
tracing
包进行日志记录 - mime03:允许从现有的 mime 0.3
Mime
结构创建ContentType
- dkim:添加对使用 DKIM 签署电子邮件的支持
依赖项
~3–40MB
~698K SLoC