4 个版本
0.1.4 | 2023年11月26日 |
---|---|
0.1.3 | 2022年3月12日 |
0.1.2 | 2021年2月14日 |
0.1.0 | 2020年4月25日 |
#30 in 电子邮件
3,469 每月下载量
用于 4 个 crate(直接使用 2 个)
33KB
658 行
EmlParser
EmlParser
是一个用于解析 .eml
文件的 crate。目前,这个 crate 非常基础,支持从电子邮件头和消息体中提取字段 (name,value)
对。特殊的头 To
、From
和 Subject
被分开;其他所有头目前都列在 Vec<HeaderField>
中。
该 crate 的解析尝试遵循 RFC-0822,但实际上在处理换行符方面似乎与 RFC 有所偏差。规范说明正文和头由一个空行分开,由 CRLF 定界。通常,我们实际上会看到 \n\n,所以 EmlParser
允许 \n\n、\r\r 和 \r\n\r\n。
注意,头字段 可以 包含换行符,定义为 线性空白。
找到头和正文之间的分隔符遵循以下转换图
用法
您可以使用 EmlParser
与一个 &str
或一个文件名一起使用
let eml: Eml = EmlParser::from_file("Re: hello.eml")?
.ignore_body()
.parse()?;
let expected = HeaderFieldValue::SingleEmailAddress(EmailAddress::NameAndEmailAddress {
name: "Anne Thompson".to_string(),
address: "[email protected]".to_string(),
});
assert_eq!(Some(expected), eml.from);
assert_eq!(Some("Re: hello".to_string()), eml.subject);
依赖关系
~10MB
~232K SLoC