90 lines
2.8 KiB
HTML
90 lines
2.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 5321 defining parts of a valid SMTP address</title>
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
<pre style="font-size:11px;">
|
||
|
Mailbox = Local-part "@" ( Domain / address-literal )
|
||
|
|
||
|
Local-part = Dot-string / Quoted-string
|
||
|
; MAY be case-sensitive
|
||
|
|
||
|
|
||
|
Dot-string = Atom *("." Atom)
|
||
|
|
||
|
Atom = 1*atext
|
||
|
|
||
|
Quoted-string = DQUOTE *QcontentSMTP DQUOTE
|
||
|
|
||
|
QcontentSMTP = qtextSMTP / quoted-pairSMTP
|
||
|
|
||
|
quoted-pairSMTP = %d92 %d32-126
|
||
|
; i.e., backslash followed by any ASCII
|
||
|
; graphic (including itself) or SPace
|
||
|
|
||
|
qtextSMTP = %d32-33 / %d35-91 / %d93-126
|
||
|
; i.e., within a quoted string, any
|
||
|
; ASCII graphic or space is permitted
|
||
|
; without blackslash-quoting except
|
||
|
; double-quote and the backslash itself.
|
||
|
|
||
|
Domain = sub-domain *("." sub-domain)
|
||
|
|
||
|
sub-domain = Let-dig [Ldh-str]
|
||
|
|
||
|
Let-dig = ALPHA / DIGIT
|
||
|
|
||
|
Ldh-str = *( ALPHA / DIGIT / "-" ) Let-dig
|
||
|
|
||
|
address-literal = "[" ( IPv4-address-literal /
|
||
|
IPv6-address-literal /
|
||
|
General-address-literal ) "]"
|
||
|
; See Section 4.1.3
|
||
|
|
||
|
IPv4-address-literal = Snum 3("." Snum)
|
||
|
|
||
|
IPv6-address-literal = "IPv6:" IPv6-addr
|
||
|
|
||
|
General-address-literal = Standardized-tag ":" 1*dcontent
|
||
|
|
||
|
Standardized-tag = Ldh-str
|
||
|
; Standardized-tag MUST be specified in a
|
||
|
; Standards-Track RFC and registered with IANA
|
||
|
|
||
|
dcontent = %d33-90 / ; Printable US-ASCII
|
||
|
%d94-126 ; excl. "[", "\", "]"
|
||
|
|
||
|
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>
|