142 lines
4.8 KiB
HTML
142 lines
4.8 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
|
|
||
|
<head>
|
||
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
||
|
<title>The BNF from RFC 5322 defining parts of a valid internet message address</title>
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
<pre style="font-size:11px;">
|
||
|
addr-spec = local-part "@" domain
|
||
|
|
||
|
local-part = dot-atom / quoted-string / obs-local-part
|
||
|
|
||
|
dot-atom = [CFWS] dot-atom-text [CFWS]
|
||
|
|
||
|
CFWS = (1*([FWS] comment) [FWS]) / FWS
|
||
|
|
||
|
FWS = ([*WSP CRLF] 1*WSP) / obs-FWS
|
||
|
; Folding white space
|
||
|
|
||
|
WSP = SP / HTAB ; white space
|
||
|
|
||
|
obs-FWS = 1*([CRLF] WSP) ; As amended in erratum #1908
|
||
|
|
||
|
ctext = %d33-39 / ; Printable US-ASCII
|
||
|
%d42-91 / ; characters not including
|
||
|
%d93-126 / ; "(", ")", or "\"
|
||
|
obs-ctext
|
||
|
|
||
|
obs-ctext = obs-NO-WS-CTL
|
||
|
ccontent = ctext / quoted-pair / comment
|
||
|
|
||
|
comment = "(" *([FWS] ccontent) [FWS] ")"
|
||
|
|
||
|
dot-atom-text = 1*atext *("." 1*atext)
|
||
|
|
||
|
atext = ALPHA / DIGIT / ; Printable US-ASCII
|
||
|
"!" / "#" / ; characters not including
|
||
|
"$" / "%" / ; specials. Used for atoms.
|
||
|
"&" / "'" /
|
||
|
"*" / "+" /
|
||
|
"-" / "/" /
|
||
|
"=" / "?" /
|
||
|
"^" / "_" /
|
||
|
"`" / "{" /
|
||
|
"|" / "}" /
|
||
|
"~"
|
||
|
|
||
|
specials = "(" / ")" / ; Special characters that do
|
||
|
"<" / ">" / ; not appear in atext
|
||
|
"[" / "]" /
|
||
|
":" / ";" /
|
||
|
"@" / "\" /
|
||
|
"," / "." /
|
||
|
DQUOTE
|
||
|
|
||
|
quoted-string = [CFWS]
|
||
|
DQUOTE *([FWS] qcontent) [FWS] DQUOTE
|
||
|
[CFWS]
|
||
|
|
||
|
qcontent = qtext / quoted-pair
|
||
|
|
||
|
qtext = %d33 / ; Printable US-ASCII
|
||
|
%d35-91 / ; characters not including
|
||
|
%d93-126 / ; "\" or the quote character
|
||
|
obs-qtext
|
||
|
|
||
|
obs-qtext = obs-NO-WS-CTL
|
||
|
|
||
|
obs-NO-WS-CTL = %d1-8 / ; US-ASCII control
|
||
|
%d11 / ; characters that do not
|
||
|
%d12 / ; include the carriage
|
||
|
%d14-31 / ; return, line feed, and
|
||
|
%d127 ; white space characters
|
||
|
|
||
|
quoted-pair = ("\" (VCHAR / WSP)) / obs-qp
|
||
|
|
||
|
VCHAR = %x21-7E ; visible (printing) characters
|
||
|
|
||
|
obs-qp = "\" (%d0 / obs-NO-WS-CTL / LF / CR)
|
||
|
|
||
|
obs-local-part = word *("." word)
|
||
|
|
||
|
word = atom / quoted-string
|
||
|
|
||
|
atom = [CFWS] 1*atext [CFWS]
|
||
|
|
||
|
domain = dot-atom / domain-literal / obs-domain
|
||
|
|
||
|
domain-literal = [CFWS] "[" *([FWS] dtext) [FWS] "]" [CFWS]
|
||
|
|
||
|
dtext = %d33-90 / ; Printable US-ASCII
|
||
|
%d94-126 / ; characters not including
|
||
|
obs-dtext ; "[", "]", or "\"
|
||
|
|
||
|
obs-dtext = obs-NO-WS-CTL / quoted-pair
|
||
|
|
||
|
obs-domain = atom *("." atom)
|
||
|
|
||
|
NB For SMTP mail, the domain-literal is restricted by RFC5321 as follows:
|
||
|
|
||
|
Mailbox = Local-part "@" ( Domain / address-literal )
|
||
|
|
||
|
address-literal = "[" ( IPv4-address-literal /
|
||
|
IPv6-address-literal /
|
||
|
General-address-literal ) "]"
|
||
|
|
||
|
IPv4-address-literal = Snum 3("." Snum)
|
||
|
|
||
|
IPv6-address-literal = "IPv6:" IPv6-addr
|
||
|
|
||
|
Snum = 1*3DIGIT
|
||
|
; representing a decimal integer
|
||
|
; value in the range 0 through 255
|
||
|
|
||
|
IPv6-addr = IPv6-full / IPv6-comp / IPv6v4-full / IPv6v4-comp
|
||
|
|
||
|
IPv6-hex = 1*4HEXDIG
|
||
|
|
||
|
IPv6-full = IPv6-hex 7(":" IPv6-hex)
|
||
|
|
||
|
IPv6-comp = [IPv6-hex *5(":" IPv6-hex)] "::"
|
||
|
[IPv6-hex *5(":" IPv6-hex)]
|
||
|
; The "::" represents at least 2 16-bit groups of
|
||
|
; zeros. No more than 6 groups in addition to the
|
||
|
; "::" may be present.
|
||
|
|
||
|
IPv6v4-full = IPv6-hex 5(":" IPv6-hex) ":" IPv4-address-literal
|
||
|
|
||
|
IPv6v4-comp = [IPv6-hex *3(":" IPv6-hex)] "::"
|
||
|
[IPv6-hex *3(":" IPv6-hex) ":"]
|
||
|
IPv4-address-literal
|
||
|
; The "::" represents at least 2 16-bit groups of
|
||
|
; zeros. No more than 4 groups in addition to the
|
||
|
; "::" and IPv4-address-literal may be present.
|
||
|
|
||
|
</pre>
|
||
|
</body>
|
||
|
|
||
|
</html>
|