11 个版本
0.2.9 | 2024 年 7 月 31 日 |
---|---|
0.2.8 | 2024 年 7 月 31 日 |
0.2.4 | 2022 年 11 月 2 日 |
0.2.3 | 2022 年 8 月 9 日 |
0.1.0 | 2020 年 3 月 24 日 |
#4 in 电子邮件
201,421 个月下载量
在 215 个 crate 中使用 (41 个直接使用)
66KB
1.5K SLoC
Crate email_address
一个提供符合 RFC 规范的 EmailAddress
新类型实现的 Rust crate。
主要适用于验证,EmailAddress
类型通过 FromStr::from_str
构建,这将会抛出任何解析错误。在构建之前,也可以使用函数 is_valid
、is_valid_local_part
和 is_valid_domain
来测试有效性,而无需构建实例。
状态
目前,它支持所有 RFC ASCII 和 UTF-8 字符集规则,以及引号和非引号本地部分,但不支持所有 SMTP 头部所需的生成,如折叠空白、注释等。
示例
use email_address::*;
assert!(EmailAddress::is_valid("[email protected]"));
assert_eq!(
EmailAddress::from_str("Abc.example.com"),
Error::MissingSeparator.into()
);
规范
- RFC 1123: 互联网主机要求 -- 应用和支持,IETF,1989 年 10 月。
- RFC 3629: UTF-8,ISO 10646 的转换格式,IETF,2003 年 11 月。
- RFC 3696: 检查和转换名称的应用技术,IETF,2004 年 2 月。
- RFC 4291 IP 版本 6 地址架构,IETF,2006 年 2 月。
- RFC 5234: 用于语法规范的扩展 BNF:ABNF,IETF,2008 年 1 月。
- RFC 5321: 简单邮件传输协议,IETF,2008 年 10 月。
- RFC 5322: 互联网消息格式,IETF,2008 年 10 月。
- RFC 5890: 用于应用程序的国际化域名 (IDNA):定义和文件框架,IETF,2010 年 8 月。
- RFC 6531: 用于国际化电子邮件的 SMTP 扩展,IETF,2012 年 2 月。
- RFC 6532: 国际化电子邮件头部,IETF,2012 年 2 月。
变更
版本 0.2.9
- 修复了错误 #21:接受无效的Unicode字符。
版本 0.2.8
- 修复了错误 #29:恢复了对
Eq
的实现。
版本 0.2.7
- 特性:为
Option
类型添加了构建函数。 - 文档:为
Option
类型文档添加了示例。
版本 0.2.6
- 修复:合并问题。
版本 0.2.5
- 特性:Pull Request #15 -- 添加任何自由文本作为显示名称的潜在增强。
- 特性:Pull Request #17 -- 检查域名部分的起始或结束是否包含非字母数字字符。
- 特性:Pull Request #18 -- 当为空时,用
SubDomainEmpty
代替InvalidCharacter
出现错误。 - 特性:Pull Request #19 -- 允许配置最小子域数量。
- 特性:Pull Request #20 -- 添加不允许域名字面量的选项。
- 特性:Pull Request #22 -- 处理电子邮件本地部分中的单引号。
感谢 ghandic、blaine-arcjet、Thomasdezeeuw。
版本 0.2.4
- 修复了错误 #11
- 为域名部分添加了不区分大小写的比较的
PartialEq
的手动实现。 - 因为上述原因,添加了
Hash
的手动实现。
- 为域名部分添加了不区分大小写的比较的
- 将
new_unchecked
的签名改为更灵活。 - 添加了
as_str
辅助方法。
版本 0.2.3
- 添加了新的
EmailAddress::new_unchecked
函数(Sören Meier)。
版本 0.2.2
- 移除了手动实现的
Send
和Sync
,并修复了文档错误(Sören Meier)。
版本 0.2.1
- 为
From<EmailAddress>
添加了String
。 - 为
EmailAddress
添加了AsRef<str
。 - 添加了
local_part
和domain
访问器。 - 添加了更多单元测试,特别是针对上述列表。
- 增加了警告和拒绝列表的条件。
- 修复了一些 Clippy 警告。
- 修复了编码 mailto URI 方案中的错误。
版本 0.2.0
- 添加了 UTF-8 支持。
- 添加了更多测试用例,修复了解析中的缺陷。
- 方法
to_uri
现在支持将地址作为 URI 的一部分进行 URI 编码。 - 添加了
is_valid_local_part
和is_valid_domain
方法。
版本 0.1.0
- 基于 RFC 5322 的基本类型实现和结构。
- 见 TODO。
TODO
- 支持注释。
- 支持换行和空白规则。
- 不解析 到
domain-literal
值,仅进行表面语法检查。
依赖项
~170KB