2 个版本

0.11.8 2024 年 4 月 27 日
0.11.7 2024 年 4 月 27 日

89电子邮件 中排名

29 每月下载次数

MIT 许可证

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 文件中)

异步执行运行时

使用 tokioasync-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