标准电子邮件地址格式(RFC 5322 里的 mailbox 语法)

发布于:2025-08-17 ⋅ 阅读:(15) ⋅ 点赞:(0)

标准电子邮件地址格式(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. PublicGiant; "Big" Box 的显示名需要用双引号括起来,因为:

    • 前者包含句点(.

    • 后者同时包含分号(;)和双引号("),其中双引号是通过转义形式(quoted-pair)出现的。

  • 相反,Who? 不需要用双引号包裹,因为问号(?)在 atom 中是合法字符。

  • 另外,jdoe@example.orgboss@nil.test 完全没有显示名。

  • jdoe@example.org 使用的是更简单的地址形式,即没有尖括号< >)包裹的写法。

4、“邮件群组”(group address)

群组是一种地址字段(Address Field)的特殊形式,用来表示一组收件人
语法(RFC 5322):

 display-name : [mailbox-list] ;
  • display-name:群组名(显示名称)

  • mailbox-list:组内的一个或多个邮箱地址,用逗号分隔

  • ;:结束群组定义

  • [] 表示可选,如果 mailbox-list 为空,就是空群组

这个暂时用的比较少,等遇到了再做补充。


网站公告

今日签到

点亮在社区的每一天
去签到