Chapter "3.5.1. Overview" says:
--- start quote ------
"User name" is a fuzzy term and has been used deliberately. An
implementation of the VRFY or EXPN commands MUST include at least
recognition of local mailboxes as "user names". However, since
current Internet practice often results in a single host handling
mail for multiple domains, hosts, especially hosts that provide this
functionality, SHOULD accept the "local-part(_at_)domain" form as a "user
name"; hosts MAY also choose to recognize other strings as "user
names".
--- end quote ------
However later actual syntax seems not allow "@domain" which is "SHOULD"
on here.
--- start quote ------
4.1.1.6. VERIFY (VRFY)
This command asks the receiver to confirm that the argument
identifies a user or mailbox. If it is a user name, information is
returned as specified in Section 3.5.
This command has no effect on the reverse-path buffer, the forward-
path buffer, or the mail data buffer.
Syntax:
"VRFY" SP String CRLF
4.1.1.7. EXPAND (EXPN)
This command asks the receiver to confirm that the argument
identifies a mailing list, and if so, to return the membership of
that list. If the command is successful, a reply is returned
containing information as described in Section 3.5. This reply will
have multiple lines except in the trivial case of a one-member list.
This command has no effect on the reverse-path buffer, the forward-
path buffer, or the mail data buffer and may be issued at any time.
Syntax:
"EXPN" SP String CRLF
--- end quote ------
And String was defined as:
--- start quote ------
Local-part = Dot-string / Quoted-string
; MAY be case-sensitive
Dot-string = Atom *("." Atom)
Atom = 1*atext
Quoted-string = DQUOTE *qcontent DQUOTE
String = Atom / Quoted-string
--- end quote ------
Should syntax to be
"VRFY" SP ( Local-part / Mailbox ) CRLF
and
"EXPN" SP ( Local-part / Mailbox ) CRLF
/ Kari Hurtta