#rfc-5322 #parser #rfc-6532

email-address-parser

RFC 5322 和 RFC 6532 兼容的电子邮件地址解析器

17 个版本 (5 个稳定版)

2.0.0 2023 年 5 月 31 日
2.0.0-rc32022 年 12 月 26 日
2.0.0-rc22022 年 8 月 27 日
2.0.0-rc12021 年 10 月 11 日
0.3.0-rc22020 年 8 月 30 日

#54 in 邮件

Download history 1991/week @ 2024-03-14 1681/week @ 2024-03-21 1376/week @ 2024-03-28 1202/week @ 2024-04-04 1788/week @ 2024-04-11 1425/week @ 2024-04-18 1021/week @ 2024-04-25 1789/week @ 2024-05-02 2078/week @ 2024-05-09 1094/week @ 2024-05-16 1570/week @ 2024-05-23 1169/week @ 2024-05-30 2052/week @ 2024-06-06 2039/week @ 2024-06-13 2419/week @ 2024-06-20 1635/week @ 2024-06-27

8,424 每月下载量
24 个库中使用 (11 个直接使用)

MIT 许可证

27KB
353 代码行

email-address-parser

RFC 5322 和 RFC 6532 兼容的电子邮件地址解析器。

您可以使用以下方式解析电子邮件地址的字符串。

use email_address_parser::EmailAddress;

let email = EmailAddress::parse("[email protected]", Some(true)).unwrap();
assert_eq!(email.get_local_part(), "foo");
assert_eq!(email.get_domain(), "bar.com");

对于无效的电子邮件地址的输入字符串,它返回 None

use email_address_parser::EmailAddress;

assert!(EmailAddress::parse("[email protected]", Some(true)).is_none());

要解析包含过时部分的电子邮件地址(根据 RFC 5322),将 None 作为第二个参数传递以进行非严格解析。

let email = EmailAddress::parse("\u{0d}\u{0a} \u{0d}\u{0a} [email protected]", None);
assert!(email.is_some());

Unicode 支持

符合 RFC 6532,它支持解析、验证和实例化包含 Unicode 字符的电子邮件地址。

assert!(format!("{}", EmailAddress.new("foö", "bücher.de")) == "foö@bücher.de");
assert!(format!("{}", EmailAddress.parse("foö@bücher.de")) == "foö@bücher.de");
assert!(EmailAddress.isValid("foö@bücher.de"));

依赖关系

~2.2–3MB
~62K SLoC