Re: mailto URIs

[quick note; more details as time permits]

On Fri June 17 2005 19:21, Larry Masinter wrote:

> I'm puzzled about whether the full 'address' or 'mailbox'
> specification is actually implemented, or whether the
> actual URI use is limited to RFC2822's  'addr-spec'.

The initial part if present (corresponding to an RFC 2822
To field) should be an address-list, as that's what 2822
specifies for the field.

> I'm thinking that the right thing to do is to include the
> full ABNF for whatever it is that "mailto" actually accepts,
> and then describe the mapping to/from RFC 2822 addresses,
> rather than leave a vague reference to 2822.

Reference to 2822 need not be vague; simply use 2822 grammar
production terms and specify that they are defined in 2822
(listing 2822 and 2234 as normative references).

Repeating ABNF may introduce inconsistencies and/or errors
and presents a problem for keeping the documents in sync,
e.g. as a 2822 successor is produced.

> Do mailto URIs actually work with:
>    *  Angle-bracket delimiters?
>    *  Comments?
>    *  folding white space?
>    *  non-whitespace controls?
>    *  Quoted strings... etc.

One part of the problem in asking about implementations is
that the current specification (RFC 2368) is somewhat unclear,
so there may well be implementation differences
(interoperability problems).

Mailto URIs *should* work with the full syntax, subject to
the need for appropriate encoding (RFC 2047 as well as URI
"reserved" etc. octets).  That would include the syntax for
all 2822, MIME, and extension fields, since arbitrary field
names can be specified by the mailto URI syntax.  And of
course body syntax, at least until somebody defines a field
named "Body", at which time the rather poor syntax design
choice in 2368 will be a severe problem.

A word about non-whitespace controls, since there seems to
be some confusion: aside from appearance in qtext and ctext,
they also appear in the 2822 grammar for dtext.  The reason
for that as I understand it (private correspondence with
Pete Resnick) is that at the time, IDN had not been fleshed
out, and the provision is to accommodate possible schemes.
Of course at the present time, a domain name, including IDN,
consists solely of letters, digits, and hyphens plus separating
dots.  So while the syntax has provision for NO-WS-CTLS in
dtext, those won't actually occur because of restrictions in
other specifications (notably RFCs 1034, 1035).

One implementation based on an interpretation of the existing
mailto specification is contained in the mparse library (
http://users.erols.com/blilly/mparse/index.html ).  A
sample program for converting between message prototypes and
mailto URIs is attached.  It should handle everything listed
above.  A command-line mailto URI should be converted to a
message prototype on stdout; a command-line file name corresponding
to a file containing a message prototype should be converted
to a mailto URI on stdout.  Stderr provides some information
about the conversion.

Received on Saturday, 18 June 2005 12:09:33 UTC