Open Bug 79128 Opened 20 years ago Updated 11 years ago

In a mailto: URL, we should treat "+" as a space

Categories

(MailNews Core :: Composition, defect)

defect
Not set
normal

Tracking

(Not tracked)

Future

People

(Reporter: stephend, Unassigned)

References

()

Details

(Whiteboard: INVALID?)

Attachments

(1 file)

Build ID:  2001050608, Windows 2000, but applies to all platforms.

Summary: In a mailto: URL, we should parse "+" as a space.

Steps to Reproduce:

1.  In the Navigator URL bar, type: mailto:user@domain.invalid?subject=foo+foo2
2.  Hit Enter (or return on Mac)

Expected Results:

The widget is pre-populated with To: user@domain.invalid, with a subject of "foo
foo2".  (Notice the space, and lack of the "+" character)

Actual Results:

We populate the Addressee and Subject correctly, but we don't replace the "+"
with a space.
Please note, however, that email addresses can contain the character "+".
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla1.0
Target Milestone: mozilla1.0 → Future
I just hit a real world example:
mailto:spon_politik@spiegel.de?cc=spon_leserbriefe@spiegel.de&subject=Leserbrief+zum+Artikel+Internationales+Strafgericht%3A+US%2DKongress+droht+Niederlande+mit+Invasion++%28ID%3A+200430%29

My first thought, that everywhere behind the ? we should do it. But as Henri
points out, this might affect addresses like cc above. RfC 1738 says:

   Thus, only alphanumerics, the special characters "$-_.+!*'(),", and
   reserved characters used for their reserved purposes may be used
   unencoded within a URL.

So this means, that bug here should be INVALID, which does make no sense, of
course. Well, mailto does not allow for ?... in RfC 1738 anyways. But RfC 2368 
  does extend mailto ... and AFAICS does not say anything about our problem.

pi
Blocks: 178413
The substituting + sign for space does not appear part of general URL encoding
as specified by RFC 1738, as pointed out above.  It is specified by HTML for
form data only:
application/x-www-form-urlencoded 
http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1

So it looks to me that (although the plus-for-space substitution would be
convenient) by current standards it does not apply to mailto urls.  Thus, spaces
should be encoded instead as %20 in mailto urls, for example
  mailto:user@domain.invalid?subject=foo%20foo2  
I agree this bug seems to be INVALID.
Product: MailNews → Core
Stephen, is this bug still valid or can we mark it as invalid?
Assignee: ducarroz → nobody
Status: ASSIGNED → NEW
QA Contact: esther → composition
Whiteboard: INVALID?
I see no reason why it would be invalid. It might have been fixed (I no longer use Mail in SeaMonkey, so I cannot test), but it definitely is valid.

pi
A low-priority bug, I'm guessing, but seems to be still valid.

I'll attach a screenshot showing Outlook 2007's lack of compliance/implementation.

I grepped RFC 2368 (from 1998), http://www.ietf.org/rfc/rfc2368, and under section 5. Encoding, it has this to say:

5. Encoding

   RFC 1738 requires that many characters in URLs be encoded. This
   affects the mailto scheme for some common characters that might
   appear in addresses, headers or message contents. One such character
   is space (" ", ASCII hex 20). Note the examples above that use "%20"
   for space in the message body.  Also note that line breaks in the
   body of a message MUST be encoded with "%0D%0A".

A mail developer's opinion would be good, but I can remember vividly this wasn't a big deal at Netscape, since actual space characters in a URL are treated properly...
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.