Mailto Link Generator

Build a mailto link with the subject, body, cc and bcc encoded the way mail clients actually read them.

Optional. Line breaks are encoded correctly.

One address, or several separated by commas.

100 runs left today · sign up for more

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.