什么是电子邮件地址格式“名称 <电子邮件>”?

Eri*_*ner 23 email standards

给定格式的电子邮件地址

John Doe <john@example.com>
Run Code Online (Sandbox Code Playgroud)

我想知道这种格式是在哪里明确定义的以及整个事情被称为什么。 rfc5322 中似乎没有指定(至少我没有找到)。那么鉴于上面的地址,如果你必须为它定义一个类,你会为下面的成员变量命名什么?

  • John Doe (姓名)
  • john@example.com> (地址)
  • John Doe <john@example.com> -> 你怎么称呼整个事情?

Dav*_*ill 36

约翰·多伊 <john@example.com> ? 你怎么称呼整个事情?

它被称为邮箱,如第 45 页的 RFC 5322 中所述:

3.4. 地址说明

地址出现在多个消息头字段中,以指示消息的发送者和接收者。地址可以是单个邮箱,也可以是一组邮箱。

通常,邮箱由两部分组成:(1) 一个可选的显示名称,表示可以向邮件应用程序的用户显示的收件人名称(可以是个人或系统),以及 (2)括在尖括号(“<”和“>”)中的 addr-spec 地址。还有一种邮箱的替代简单形式,其中 addr-spec 地址单独出现,没有收件人的姓名或尖括号。Internet addr-spec 地址在 3.4.1 节中描述。

来源3.4。地址说明

另见附录 A.1.2。不同类型的邮箱

  • *picardfacepalm* (6认同)
  • @i486 仅当名称包含非“atom”字符(带有“.”特殊大小写)时才需要引号。例如,“,”需要引号。参见 3.2.5 和 4.1。 (3认同)
  • @ i486 不需要引号。请参阅 RFC 中的示例(我的答案中的第二个链接)。 (2认同)

Nik*_*nov 25

它在RFC5322 中,您只是错过了它:

address         =   mailbox / group
mailbox         =   name-addr / addr-spec
name-addr       =   [display-name] angle-addr
angle-addr      =   [CFWS] "<" addr-spec ">" [CFWS] / obs-angle-addr
group           =   display-name ":" [group-list] ";" [CFWS]
display-name    =   phrase
mailbox-list    =   (mailbox *("," mailbox)) / obs-mbox-list
address-list    =   (address *("," address)) / obs-addr-list
group-list      =   mailbox-list / CFWS / obs-group-list
Run Code Online (Sandbox Code Playgroud)

让我们分解一下。

address一个mailbox或一个group。Amailboxname-addraddr-spec

name-addr是您要问的格式:有一个可选的display-name(它是可选的,因为它是用方括号定义的),然后是angle-addr,它本身是一个addr-spec尖括号,CFWS两侧有可选的可折叠空间(在第 3.2.2 节),或过时的地址格式obs-angle-addr

整个3.4.1 节专门用于描述addr-spec格式。

所以,总结一下:

  • John Doe <john@example.com>name-addr,是 的变体mailbox,是 的变体address
  • John Doe 是一个 display-name
  • <john@example.com> 是一个 angle-addr
  • john@example.com 是一个 addr-spec
  • john 是一个 local-part
  • example.com是一个domain