Rust邮件验证库mailchecker的使用,高效检测和过滤无效或临时邮箱地址
Rust邮件验证库mailchecker的使用,高效检测和过滤无效或临时邮箱地址
MailChecker是一个跨语言的电子邮件验证库,它基于包含超过55,000个可丢弃邮箱域名的数据库。
主要功能:
- 验证电子邮件格式(使用validator.js的电子邮件正则表达式)
- 验证电子邮件是否不是临时邮件(如yopmail等)
Rust示例代码
以下是内容中提供的Rust示例:
extern crate mailchecker;
assert_eq!(true, mailchecker::is_valid("plop@plop.com"));
assert_eq!(false, mailchecker::is_valid("\nok@gmail.com\n"));
assert_eq!(false, mailchecker::is_valid("ok@guerrillamailblock.com"));
完整示例demo
下面是一个更完整的Rust使用示例:
// 导入mailchecker库
extern crate mailchecker;
fn main() {
// 测试有效邮箱
let valid_email = "user@example.com";
if mailchecker::is_valid(valid_email) {
println!("{} 是有效的邮箱地址", valid_email);
} else {
println!("{} 是无效的邮箱地址", valid_email);
}
// 测试临时邮箱
let temp_email = "temp@yopmail.com";
if mailchecker::is_valid(temp_email) {
println!("{} 是有效的邮箱地址", temp_email);
} else {
println!("{} 是临时/无效的邮箱地址", temp_email);
}
// 测试格式错误的邮箱
let invalid_email = "not-an-email";
if mailchecker::is_valid(invalid_email) {
println!("{} 是有效的邮箱地址", invalid_email);
} else {
println!("{} 是无效的邮箱格式", invalid_email);
}
}
安装
在Cargo.toml中添加依赖:
[dependencies]
mailchecker = "6.0.17"
或者运行命令:
cargo add mailchecker
特点
- 支持超过55,000个可丢弃邮箱域名的检测
- 简单易用的API
- 跨语言支持(包括Rust、NodeJS、Python、PHP等)
- 开源且持续维护
这个库在需要联系用户并希望避免因无效邮箱导致的通信错误,或需要阻止"垃圾邮箱"的场景中非常有用。
1 回复
Rust邮件验证库mailchecker的使用指南
介绍
mailchecker
是一个高效的Rust库,用于检测和过滤无效或临时邮箱地址。它可以帮助你在用户注册或提交表单时,识别并阻止使用一次性/临时邮箱服务的用户,提高应用的用户质量和数据有效性。
主要特性
- 包含超过5000个临时邮箱域名列表
- 轻量级且高效
- 简单易用的API
- 定期更新的域名数据库
安装方法
在Cargo.toml
中添加依赖:
[dependencies]
mailchecker = "4.1.0"
完整示例代码
use mailchecker;
fn main() {
// 示例1: 基本邮箱验证
let email1 = "user@example.com";
let email2 = "user@mailinator.com";
println!("检查 {}: {}", email1, if mailchecker::is_valid(email1) { "有效" } else { "无效" });
println!("检查 {}: {}", email2, if mailchecker::is_valid(email2) { "有效" } else { "无效" });
// 示例2: 域名黑名单检查
let domain = "guerrillamail.com";
if mailchecker::is_domain_blacklisted(domain) {
println!("{} 在黑名单中", domain);
}
// 示例3: 获取所有黑名单域名
let domains = mailchecker::blacklist();
println!("当前黑名单域名数量: {}", domains.len());
// 示例4: 用户注册验证
let new_user_email = "user@temp-mail.org";
match validate_email(new_user_email) {
Ok(_) => println!("邮箱验证通过"),
Err(e) => println!("验证失败: {}", e),
}
// 示例5: 添加自定义黑名单域名
mailchecker::add_custom_domains(&["my-company-temp.com"]);
println!("检查 custom@my-company-temp.com: {}",
if mailchecker::is_valid("custom@my-company-temp.com") { "有效" } else { "无效" });
}
// 用户注册邮箱验证函数
fn validate_email(email: &str) -> Result<(), String> {
// 验证邮箱格式(简单示例)
if !email.contains('@') {
return Err("邮箱格式不正确".to_string());
}
// 检查是否临时邮箱
if !mailchecker::is_valid(email) {
return Err("请使用永久邮箱地址注册".to_string());
}
Ok(())
}
代码说明
- 基本验证:使用
is_valid()
函数检查邮箱是否来自临时邮箱服务 - 域名检查:使用
is_domain_blacklisted()
检查特定域名是否在黑名单中 - 获取黑名单:
blacklist()
返回所有被屏蔽的域名集合 - 自定义黑名单:
add_custom_domains()
添加额外的临时邮箱域名 - 实际应用:展示了如何在用户注册流程中整合邮箱验证
注意事项
- 该库只验证域名部分,不验证邮箱格式的正确性
- 临时邮箱服务不断变化,建议定期更新库版本
- 可能会存在少量误判,特别是新出现的临时邮箱服务
通过这个完整的示例,你可以了解如何在Rust项目中使用mailchecker库来验证邮箱地址的有效性,防止用户使用临时邮箱注册。