Base64 strings in URL

emailmail.appsafariurl

I'm having a problem with Base64 strings in URLs in El Capitan.

I'm sending notifications from a web platform to its users. Those emails are plain text and contain links to messages.

I have tried the following links

http://localhost#VGhpcyBpcyBhIGJvcmluZyBleGFtcGxlIHRlc3Qu

http://localhost?e=VGhpcyBpcyBhIGJvcmluZyBleGFtcGxlIHRlc3Qu

However when someone clicks on a link in Apple Mail then Safari opens the links with the Base64 code converted to lowercase. I don't get why this is happening. It seams like a big bug to me. Has anyone found an easy workouround?

The only solution I found so far was to use Base32 but that just increases the length of the URLs. Another possible might be to use HTML emails but that would mean quite a bit of extra work which I'd like to avoid.

Best Answer

You should explicitly put a slash "/" after the host name, ie

http://localhost/?e=VGhpcyBpcyBhIGJvcmluZyBleGFtcGxlIHRlc3Qu

Without the trailing / character after localhost, Mail treats the entire url as a hostname, which is case-insensitive.