标准电子邮件地址格式(RFC 5322 里的 mailbox 语法),由两部分组成:
1. 组成结构
以该结构为例: "naifei" <naifei@qq.com>
显示名(Display Name):
"naifei"是一个人类可读的名字,通常用引号包裹以避免空格、特殊字符冲突。
如果名字里没有特殊字符,引号可以省略。
角括号内的地址(Angle-addr):naifei
@qq.com这是实际的电子邮件地址。
分为:
本地部分(Local-part):naifei
域名部分(Domain):qq.com
2. 解析结果示例
用 JSON 表示解析结果:
{ "display_name": "naifei",
"local_part": "naifei",
"domain": "qq.com",
"email": "naifei@qq.com"
}
3、单个 不同格式的mailbox示例
这封邮件在目标字段里包含了多个地址,并且使用了几种不同的地址形式。
From: "Joe Q. Public" <john.q.public@example.com>
To: Mary Smith <mary@x.test>, jdoe@example.org, Who? <one@y.test>
Cc: <boss@nil.test>, "Giant; \"Big\" Box" <sysservices@example.net>
Date: Tue, 1 Jul 2003 10:52:37 +0200
Message-ID: <5678.21-Nov-1997@example.com> Hi everyone.
请注意:
Joe Q. Public和Giant; "Big" Box的显示名需要用双引号括起来,因为:前者包含句点(
.)后者同时包含分号(
;)和双引号("),其中双引号是通过转义形式(quoted-pair)出现的。
相反,
Who?不需要用双引号包裹,因为问号(?)在atom中是合法字符。另外,
jdoe@example.org和boss@nil.test完全没有显示名。jdoe@example.org使用的是更简单的地址形式,即没有尖括号(< >)包裹的写法。
4、“邮件群组”(group address)
群组是一种地址字段(Address Field)的特殊形式,用来表示一组收件人。
语法(RFC 5322):
display-name : [mailbox-list] ;
display-name:群组名(显示名称)mailbox-list:组内的一个或多个邮箱地址,用逗号分隔;:结束群组定义[]表示可选,如果mailbox-list为空,就是空群组
这个暂时用的比较少,等遇到了再做补充。