0.10.0 |
|
---|---|
0.9.0 |
|
0.8.0 |
|
0.7.0 |
|
0.6.0 |
|
#6 in #rfc822
每月下载 73 次
110KB
2.5K SLoC
RFC 2822 解析器。
目前,这个crate只识别RFC 2822的name-addr和addr-spec生成规则,即如下形式的
Name (Comment) <email@example.org>
和
email@example.org
尽管上述内容看起来很容易解析,但RFC 2822的空白和注释规则相当复杂。这个crate实现了整个语法。
作为一个扩展,除了ASCII之外,我们还识别所有UTF-8码点。NUL、控制符和特殊符号保留在RFC 2822中定义的意义。其他UTF-8码点被视为文本,如a
。
此外,我们还允许在atom
生成规则中使用点(.
)和at符号(@
)。也就是说,atom
生成规则从
atom = [CFWS] 1*atext [CFWS]
扩展到
atom = [CFWS] 1*atext_or_dot_or_at [CFWS]
atext_or_dot_or_at = atext | DOT | AT
并且,因此
Professor Pippy P. Poopypants <pippy@jerome-horwitz.k12.oh.us>
被识别为name-addr
,尽管RFC 2822严格要求将display-name
引用
"Professor Pippy P. Poopypants" <pippy@jerome-horwitz.k12.oh.us>
同样地,
foo@bar.com <foo@bar.com>
被识别为name-addr
,尽管@
应该被引用。
此crate尚未实现新的RFC 5322。
依赖项
~0.1–1.2MB
~23K SLoC