Mailto link generator — pre-fill the subject, body, CC and BCC

Type the recipients, subject and message, and the tool builds a correctly encoded mailto link plus an HTML anchor you can paste into a web page, email signature or PDF.

Live demo · real result from this tool

Link

mailto:support@example.com?subject=Order%20%231042%20%E2%80%94%20question&body=Hello%2C%0D%0A%0D%0AI%20have%20a%20question%20about%20my%20order.

HTML

<a href="mailto:support@example.com?subject=Order%20%231042%20%E2%80%94%20question&amp;body=Hello%2C%0D%0A%0D%0AI%20have%20a%20question%20about%20my%20order.">Email support</a>

Preview

Processed on your device — nothing is uploaded.

  1. Enter one or more addresses in To (comma-separated). Add CC and BCC addresses if you need them.
  2. Fill in Subject and Body. Leave either empty to skip it.
  3. Change Link text to the words people will click, such as “Email support”.
  4. The results update as you type: copy the Link for a button builder or QR code, or the HTML anchor for a web page. The Preview shows how the button looks.

What it does and when to use it

A mailto link opens a new email in the visitor’s mail app with the fields already filled in. It saves them typing and gives you subject lines that are easy to filter. Typical uses: a “Report a problem” link on a help page, or a “Request a quote” button with the product name in the subject.

If you want people to text or call instead, use the SMS link generator or the click-to-call link generator. For a printed flyer, paste the finished link into the QR code generator.

How it works

The tool follows RFC 6068, the mailto standard. Addresses are split on commas, semicolons and spaces and joined with commas; the @ sign is left readable. CC and BCC become cc= and bcc= parameters, and the subject and body are percent-encoded with the browser’s encodeURIComponent, so a space becomes %20, a comma %2C and an em dash %E2%80%94. Line breaks in the body are normalised to %0D%0A.

Each address in To is checked against a simple pattern (something@domain.ending). Anything that fails is listed in a warning, but the link is still built. The HTML version writes the & between parameters as &amp;, as HTML attributes require.

Worked examples

Default support link. With the preset fields the tool produces:

mailto:support@example.com?subject=Order%20%231042%20%E2%80%94%20question&body=Hello%2C%0D%0A%0D%0AI%20have%20a%20question%20about%20my%20order.

The # in “Order #1042” became %231042. Left raw, a mail app would treat everything after it as a page fragment and drop it.

Two sales addresses with a hidden archive copy. To sales@acme.example; ops@acme.example, BCC archive@acme.example, subject “Quote request: 50 chairs & 5 tables”, empty body:

mailto:sales@acme.example,ops@acme.example?bcc=archive@acme.example&subject=Quote%20request%3A%2050%20chairs%20%26%205%20tables

The semicolon became a comma, and the & in the subject became %26 so it is not read as a new parameter.

A typo. To hello@shop gives the warning Check these addresses: hello@shop, because the address has no domain ending.

Limits and tips

  • Only the To field is checked for typos; check CC and BCC yourself.
  • Every address in the link is visible in your page source, where spam bots can collect it. Consider a contact form for high-traffic pages.
  • Keep pre-filled bodies short, and test the link on a phone and a computer before you publish it.
  • The vCard generator is a better choice when you want people to save all your contact details, not just send one email.

Frequently asked questions

Why not just type the mailto link by hand?
Everything after the question mark must be percent-encoded. A raw & starts a new parameter and a # cuts the link short. The generator encodes every character, so the subject and body arrive as you typed them.
How do I add line breaks to the body?
Press Enter in the Body box. Each line break is written as %0D%0A, the form the mailto standard (RFC 6068) requires, and mail apps turn it back into a new line.
Can I send to more than one person?
Yes. Separate addresses with commas, semicolons or spaces in To, CC or BCC. The tool joins them with commas, which is the separator the standard uses.
Will the BCC stay hidden?
From the other recipients, yes, once the email is sent. But the BCC address is written into the link itself, so anyone who reads your page source or hovers over the link can see it.
Why does nothing happen when someone clicks my link?
A mailto link opens the visitor's default email app. If they only use webmail and have no default mail app, the click may do nothing. Show the plain address next to the button too.

Sources

  1. RFC 6068: The 'mailto' URI Scheme — RFC Editor, accessed 2026-10-08

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close