电子邮件地址是URI吗?

26

我一直试图弄清楚电子邮件地址的格式是否符合URI的定义,但是到目前为止我还没有找到明确的证实。希望有人可以在这里提供一些见解。谢谢。

6个回答

40

可以,但要加上"mailto:"前缀。

一个URI的格式如下:

<scheme>:<scheme-specific-part>

这里的<scheme>是"mailto",<scheme-specific-part>是邮件地址。

例如:

mailto:max@provider.com

是一个有效的URI。


1
那么,如果没有 mailto: 方案,电子邮件地址就不能被视为 URI 吗? - SarahofGaia

18

根据RFC 3986:

统一资源标识符(URI)是一个紧凑的字符序列,用于标识抽象或物理资源。

基本语法组件如RFC所定义:

The generic URI syntax consists of a hierarchical sequence of
components referred to as the scheme, authority, path, query, and
fragment.

  URI         = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

  hier-part   = "//" authority path-abempty
              / path-absolute
              / path-rootless
              / path-empty

所以,电子邮件地址不是URI。但是,mailto:you@server.com 是一个有效的URI。


5

仅有电子邮件地址 - foo@bar.com - 我会说不行。 电子邮件地址链接 - mailto:foo@bar.com - 我会说可以。


一个URI不需要包含方案部分(mailto)才能有效。 - McDowell
@Massimo Fazzolari - 是的,你是正确的 - 我搞错了 - RFC 3986的ABNF需要一个方案。 - McDowell

2

是的,当与“mailto”方案一起使用时,可以查看这里:http://www.ietf.org/rfc/rfc2396.txt

1.3. URI示例

以下示例说明了常见使用的URI。

mailto:mduerst@ifi.unizh.ch
-- 用于电子邮件地址的mailto方案


RFC的1.3章节中有一个电子邮件示例。 - ron
但仅限于“mailto”限定符。可以这样想,HREF采用URI。 - Stephen Wrighton
@Stephen Wrighton - URI不需要包含方案部分(mailto)才能有效。 - McDowell
@McDowell:引用出处?RFC 3986似乎不同意。 - Andrew Aylett
@Andrew Aylett - 是的,你是正确的 - 我错了 - ABNF 明确要求一个方案。 - McDowell

2

1

我认为,如果电子邮件地址中包含“mailto:”模式引用,则可以将其视为URI;否则不能。但由于它仅在HTML页面中可见,在大多数情况下,电子邮件地址本身不能被视为URI。

如果您之前没有查看过,请查看RFC3305文档

URI方案名称的官方注册表由IANA在http://www.iana.org/assignments/uri-schemes.html上维护。

希望有所帮助, 卡洛斯。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接