From: Austin Ziegler Date: 2002-10-18T23:11:05+09:00 Subject: Re: URI bug or bad URI? On Fri, 18 Oct 2002 17:13:56 +0900, Christian Kruse wrote: > Stefan Scholl wrote: >> Alan Chen wrote: >>> mailto = URI.new( >>> 'mailto:user@domain.com?subject=test%20(@test=10) >> There's no "?subject" in mailto: > Of course there is. You can add a querystring. But brackets are > not allowed in URIs, neither are @s. Neither of these statements is true. Specifically for mailboxes: [From RFC2368, http://www.faqs.org/rfcs/rfc2368.html] Following the syntax conventions of RFC 1738 [RFC1738], a "mailto" URL has the form: mailtoURL = "mailto:" [ to ] [ headers ] to = #mailbox headers = "?" header *( "&" header ) header = hname "=" hvalue hname = *urlc hvalue = *urlc "#mailbox" is as specified in RFC 822 [RFC822]. This means that it consists of zero or more comma-separated mail addresses, possibly including "phrase" and "comment" components. Note that all URL reserved characters in "to" must be encoded: in particular, parentheses, commas, and the percent sign ("%"), which commonly occur in the "mailbox" syntax. "hname" and "hvalue" are encodings of an RFC 822 header name and value, respectively. As with "to", all URL reserved characters must be encoded. The special hname "body" indicates that the associated hvalue is the body of the message. The "body" hname should contain the content for the first text/plain body part of the message. The mailto URL is primarily intended for generation of short text messages that are actually the content of automatic processing (such as "subscribe" messages for mailing lists), not general MIME bodies. Within mailto URLs, the characters "?", "=", "&" are reserved. Because the "&" (ampersand) character is reserved in HTML, any mailto URL which contains an ampersand must be spelled differently in HTML than in other contexts. A mailto URL which appears in an HTML document must use "&" instead of "&". Also note that it is legal to specify both "to" and an "hname" whose value is "to". That is, mailto:addr1%2C%20addr2 is equivalent to mailto:?to=addr1%2C%20addr2 is equivalent to mailto:addr1?to=addr2 8-bit characters in mailto URLs are forbidden. MIME encoded words (as defined in [RFC2047]) are permitted in header values, but not for any part of a "body" hname. For URIs in general: [From RFC1738, http://www.faqs.org/rfcs/rfc1738.html] Many URL schemes reserve certain characters for a special meaning: their appearance in the scheme-specific part of the URL has a designated semantics. If the character corresponding to an octet is reserved in a scheme, the octet must be encoded. The characters ";", "/", "?", ":", "@", "=" and "&" are the characters which may be reserved for special meaning within a scheme. No other characters may be reserved within a scheme. -austin -- Austin Ziegler, austin@halostatue.ca on 2002.10.18 at 10.03.34