5个不稳定版本
0.3.0 | 2024年4月25日 |
---|---|
0.2.5 | 2019年11月20日 |
0.2.1 | 2018年12月1日 |
0.2.0 | 2018年12月1日 |
0.1.0 | 2018年11月10日 |
235 在 电子邮件 中
44KB
1K SLoC
email-address-list
这是一个相对简单的基于Pest的解析器,从“电子邮件地址列表”中提取“联系人”,例如从“发件人”、“收件人”、“抄送”等标题中提取。
该库的目标是实用而非“正确”。它在解析甚至最糟糕的垃圾邮件时都(可能过度地)宽容。对现实世界数据进行有限测试,但语法可能还需要工作以捕获更多边缘情况。
0.0.x
版本可能包含错误修复和功能,0.x.0
可能破坏兼容性。
示例
RFC兼容的标题
use email_address_list::*;
let manual: AddressList = vec![
Contact::new("rí[email protected]").set_name("Túsainm Sloinne"),
Contact::new("[email protected]")
].into();
let result = parse_address_list(
"Túsainm Sloinne <rí[email protected]>, [email protected]"
).unwrap();
assert!(result.deep_eq(&manual));
不兼容RFC的标题
let manual: AddressList = vec![
Contact::new("[email protected]").set_name("Ime Priimek"),
Contact::new("[email protected]"),
Contact::new("[email protected]")
.set_name("Oblikovan, Nepravilno"),
Contact::new("napač[email protected]"),
].into();
let result = parse_address_list(
concat!(
r#""Ime Priimek" <[email protected];[email protected]>, "#,
"Oblikovan, Nepravilno <[email protected],>>, ",
"<'napač[email protected]'>",
)
).unwrap();
assert!(result.deep_eq(&manual));
如果您发现email-address-list
失败示例,无论是省略地址还是提供错误地址,请与作者分享。
有关更多信息,请参阅文档。
谢谢
- 《大恶毒字符串列表》使测试糟糕输入变得不那么繁琐。🎊
依赖关系
~4–6.5MB
~130K SLoC