标准电子邮件地址格式(RFC 5322 里的 mailbox 语法)
标准电子邮件地址格式(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
为空,就是空群组
这个暂时用的比较少,等遇到了再做补充。