lettre 用于 Rust:完整指南及示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

用于 Rust 的 lettre 库:发送电子邮件

\n\n

1. 这是什么以及为什么需要它

\n\n

lettre(法语中意为“信件”)是一个功能强大、异步且类型安全的 Rust 语言电子邮件发送库。它提供了一套完整的工具来创建和发送电子邮件消息,既支持简单的纯文本邮件,也支持带有附件的复杂 HTML 邮件。该库完全用 Rust 编写,没有系统级的外部依赖,这使其成为注重可移植性和安全性的项目的理想选择。

\n\n

为什么需要 lettre?在现代 Web 开发中,发送电子邮件仍然是一项关键功能:用户注册、密码重置、通知、群发邮件。Rust 作为一种系统语言,传统上缺乏便捷的邮件处理工具。lettre 填补了这一空白,提供了优雅的 API、对 SMTP、MIME 和 SSL/TLS 标准的全面支持,以及与流行异步运行时(tokio、async-std)的集成。

\n\n

该库的关键功能包括:支持 SMTP、SMTPS 和通过 STARTTLS 的 SMTP;创建带有附件的多部分 MIME 消息;处理 HTML 和纯文本部分;支持异步发送;自动编码附件和标头;以及在编译时提供完整的类型安全性,从而防止动态语言中常见的许多错误。

\n\n

2. 安装

\n\n

要安装 lettre 库,请将其添加到项目的 Cargo.toml 文件中:

\n\n
[dependencies]\nlettre = "0.11"
\n\n

用于与 tokio 异步工作(推荐):

\n\n
[dependencies]\nlettre = { version = "0.11", features = ["tokio1-rustls-tls", "builder"] }\ntokio = { version = "1", features = ["full"] }
\n\n

用于同步工作(无需异步运行时):

\n\n
[dependencies]\nlettre = { version = "0.11", features = ["rustls-tls", "builder"] }
\n\n

添加依赖项后,执行以下命令:

\n\n
cargo build
\n\n

3. 快速入门

\n\n

通过 Gmail SMTP 服务器发送电子邮件的最小工作示例:

\n\n
use lettre::message::header::ContentType;\nuse lettre::transport::smtp::authentication::Credentials;\nuse lettre::{Message, SmtpTransport, Transport};\n\nfn main() -> Result<(), Box<dyn std::error::Error>> {\n    // 创建邮件\n    let email = Message::builder()\n        .from("发件人 <your_email@gmail.com>".parse()?)\n        .to("收件人 <recipient@example.com>".parse()?)\n        .subject("来自 Rust 的问候!")\n        .header(ContentType::TEXT_PLAIN)\n        .body("这是一封使用 lettre 发送的测试邮件。".to_string())?;\n\n    // 配置 SMTP 传输\n    let creds = Credentials::new(\n        "your_email@gmail.com".to_string(),\n        "your_app_password".to_string() // 使用应用密码\n    );\n\n    let mailer = SmtpTransport::relay("smtp.gmail.com")?\n        .credentials(creds)\n        .build();\n\n    // 发送\n    match mailer.send(&email) {\n        Ok(_) => println!("邮件发送成功!"),\n        Err(e) => eprintln!("发送错误:{:?}", e),\n    }\n\n    Ok(())\n}
\n\n

4. 主要方法和结构

\n\n

4.1. Message::builder()

\n

签名: pub fn builder() -> MessageBuilder

\n

描述: 创建一个新的构建器来构建电子邮件消息。构建器允许通过方法链设置邮件的所有参数:发件人、收件人、主题、内容和标头。

\n\n
use lettre::Message;\n\nlet email = Message::builder()\n    .from("user@example.com".parse()?)\n    .to("recipient@example.com".parse()?)\n    .subject("测试")\n    .body("程                    

推荐