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 在 邮件
111,738 每月下载量
用于 174 个 crate (132 直接)
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