Mailto Link Generator
Build a mailto link with the subject, body, cc and bcc encoded the way mail clients actually read them.
About this tool
Builds a `mailto:` link with a subject, body, cc and bcc already filled in, encoded correctly.
**Two things go wrong, and both produce a link that looks right.**
The subject and body have to be percent-encoded. A raw `&` ends the parameter, so a subject reading "Sales & marketing" silently becomes "Sales " and the rest is read as a parameter the mail client does not recognise.
A line break in the body has to be `%0A`. A literal newline is not valid in a URL — some clients cope, several produce a body that stops at the first line, and the difference shows up on whichever client the person testing it does not use.
**A note on the address.** Putting one in a link makes it readable by every scraper on the internet, and the obfuscation tricks that circulate do not work on anything current while breaking the link for screen readers. A contact form is the answer if that matters; if it does not, publish the address plainly.
Common questions
Why does my subject get cut off?
An unencoded ampersand. It ends the subject parameter, so everything after it is read as a different parameter and dropped. The subject must be percent-encoded, which is what this does.
How do I put a line break in the body?
As %0A. A literal newline is not valid in a URL — some clients tolerate it and several truncate the body at the first line, which is exactly the kind of bug that only appears on somebody else's machine.
Should I obfuscate the address?
No. Every technique that circulates — entity encoding, JavaScript assembly, the "at" trick — is trivially defeated by a current scraper and breaks the link for screen readers and for anyone copying it. Use a contact form if scraping matters.
Is there a length limit?
Not in the specification, and there is in practice. Some clients truncate around 2000 characters and Outlook has historically been the strictest. Keep a pre-filled body to a few lines.