in reply to Post Email address as CGI Parameter

Email addresses contain special characters that must be "escaped." Go look at any web-site that has a "mailto" link and look at the source-code of what has been sent to your browser. If possible, also look at the actual HTML text that you are sending to YOUR host. Any typo can cause the HTML not to be parsed correctly, with unpredictable results.
  • Comment on Re: Post Email address as CGI Parameter

Replies are listed 'Best First'.
Re^2: Post Email address as CGI Parameter
by Anonymous Monk on Jan 07, 2015 at 23:42 UTC
    CGI->escape() should take care of it
    $ perl -MCGI=escape -le " print escape(q/< > & ; ) ( [ ] escaped / ) " %3C%20%3E%20%26%20%3B%20%29%20%28%20%5B%20%5D%20escaped%20
Re^2: Post Email address as CGI Parameter
by Anonymous Monk on Jan 07, 2015 at 13:06 UTC
    Email addresses in mailto: links do not need special characters like the @ escaped in the HTML. mailto: links that specify a subject, body, etc. do need those values escaped, see e.g. here. Email addresses in URLs do need to be escaped, one way to do that has already been shown above.
      Even more specific: mailto's are specified in RFC 6068 with some definitions coming from RFC 5322. Those specify the exact rules, a little complicated to summarize here, but for example the @ between the local-part and domain in the addresses shouldn't be escaped. The URI module claims to support the now obsolute mailto specification from RFC 2368.