49 个版本

0.11.7 2024 年 4 月 23 日
0.11.6 2024 年 3 月 28 日
0.11.4 2024 年 1 月 28 日
0.11.2 2023 年 11 月 23 日
0.5.0 2015 年 10 月 26 日

#1邮件

Download history 24516/week @ 2024-05-03 27648/week @ 2024-05-10 26343/week @ 2024-05-17 25972/week @ 2024-05-24 26617/week @ 2024-05-31 25180/week @ 2024-06-07 27228/week @ 2024-06-14 25920/week @ 2024-06-21 25436/week @ 2024-06-28 27670/week @ 2024-07-05 27224/week @ 2024-07-12 27935/week @ 2024-07-19 28782/week @ 2024-07-26 27402/week @ 2024-08-02 28310/week @ 2024-08-09 22078/week @ 2024-08-16

111,738 每月下载量
用于 174 个 crate (132 直接)

MIT 许可证

485KB
10K SLoC

lettre

Rust 的邮件库


功能

Lettre 提供以下功能

  • 多种传输方法
  • Unicode 支持(用于邮件内容和地址)
  • 使用加密和身份验证通过 SMTP 安全投递
  • 易于使用的邮件构建器
  • 异步支持

Lettre 目前不提供

  • 邮件解析

支持的 Rust 版本

Lettre 支持过去 6 个月内发布的所有 Rust 版本。撰写本文时,最低支持的 Rust 版本是 1.70,但这可能会随时改变,无论是由于我们的依赖项提高 MSRV,还是由于 lettre 的新补丁版本。

示例

此库需要 Rust 1.70 或更高版本。要使用此库,将以下内容添加到您的 Cargo.toml

[dependencies]
lettre = "0.11"
use lettre::message::header::ContentType;
use lettre::transport::smtp::authentication::Credentials;
use lettre::{Message, SmtpTransport, Transport};

let email = Message::builder()
    .from("NoBody <[email protected]>".parse().unwrap())
    .reply_to("Yuin <[email protected]>".parse().unwrap())
    .to("Hei <[email protected]>".parse().unwrap())
    .subject("Happy new year")
    .header(ContentType::TEXT_PLAIN)
    .body(String::from("Be happy!"))
    .unwrap();

let creds = Credentials::new("smtp_username".to_owned(), "smtp_password".to_owned());

// Open a remote connection to gmail
let mailer = SmtpTransport::relay("smtp.gmail.com")
    .unwrap()
    .credentials(creds)
    .build();

// Send the email
match mailer.send(&email) {
    Ok(_) => println!("Email sent successfully!"),
    Err(e) => panic!("Could not send email: {e:?}"),
}

不确定要使用哪些连接选项?

克隆 lettre git 仓库并运行以下命令(将 SMTP_HOST 替换为您的 SMTP 服务器的主机名)

cargo run --example autoconfigure SMTP_HOST

测试

lettre 测试需要本地监听端口 2525 的开放邮件服务器和 sendmail 命令。如果您已安装 Python,可以使用以下命令启动此类服务器: python -m smtpd -n -c DebuggingServer 127.0.0.1:2525

或者,可以通过执行以下命令仅运行单元测试:cargo test --lib

故障排除

以下是在处理与 SMTP 相关问题时应遵循的一般步骤。

  • 确保基本连接,确保必要的端口已打开且守护程序正在监听。
  • 确认您的服务提供商允许在用于邮件传输的端口上进行流量。
  • 检查 SMTP 中继身份验证和配置。
  • 验证您的 DNS 记录。(DMARC、SPF、DKIM、MX)
  • 验证您的 SSL/TLS 证书是否已正确设置。
  • 调查是否由于过滤、格式化或文件大小限制而导致消息丢失、延迟或被中继或远程主机阻止。

行为准则

任何与Lettre在任何空间(包括但不限于本GitHub仓库)互动的人必须遵守我们的行为准则

许可证

本程序根据MIT许可证的条款分发。

构建者来自Kayo的emailmessage-rs,根据MIT许可证。

有关详细信息,请参阅LICENSE

依赖项

~3–41MB
~711K SLoC