Mailto Link Generator — with subject, body, cc, bcc.
Type recipients, subject, and a pre-filled body. Get a properly URL-encoded mailto: URL and an HTML <a> snippet you can paste into any page. RFC 6068 compliant. Pure client-side — nothing leaves the browser.
Clicking opens the visitor's default email client (Gmail web, Outlook, Apple Mail, etc.) with the recipients, subject, and body pre-filled. On mobile, it opens the system email app.
Mailto vs contact form — what to use when
A mailto: link is the simplest possible contact mechanism — no backend, no JavaScript, no signup. Click it, your email client opens, you send the message. For a personal portfolio or a side project where the visitor probably has an email client configured, it's fine.
The failure mode is users without a default email client. Most Gmail-web users haven't set up the "handle mailto: links" permission. Mobile users without the Gmail app installed get nothing. They click the link, nothing happens, and they leave. For a business contact form, that's a missed lead — and you have no record it happened.
The fix is a form backend. The visitor fills out an HTML form on your page, the form POSTs to a backend, the backend emails you. The visitor doesn't need any email client configured. You get every submission in your inbox AND in a dashboard, even if your inbox classifies one as spam.
splitforms is the cheapest path to that backend. Drop a form into your page, set action="https://splitforms.com/api/submit" with a free access key, and you're done. 1,000 submissions/month free. See the free HTML contact form drop-in or the HTML contact form guide.
Mailto URL parameters
Mailto link generator FAQ
What is a mailto link?
A mailto link is a hyperlink whose URL starts with `mailto:` instead of `http://`. Clicking it opens the visitor's default email client with the recipient address pre-filled. You can also pre-fill subject, body, cc, and bcc via URL parameters. The format is defined in RFC 6068. It's pure HTML — no JavaScript, no backend, no third-party service required.
How do I add subject and body to a mailto link?
Append `?subject=Your%20Subject&body=Hello%20there` to the email. Spaces are encoded as `%20`, line breaks as `%0A`, and ampersands inside the body as `%26`. The generator handles all the encoding for you — type plain text, copy the result.
How do I add multiple recipients, cc, or bcc?
Multiple recipients: comma-separate them after `mailto:` (e.g. `mailto:a@x.com,b@x.com`). CC and BCC are URL parameters: `?cc=watcher@x.com&bcc=archive@x.com`. The generator accepts comma-separated lists in the To / CC / BCC fields and encodes them correctly.
Why doesn't my mailto link work for users without an email client?
That's the main weakness. mailto: relies on the user having a configured default email client. Modern users — especially mobile users and users of Gmail web only — often don't. They click the link, nothing happens, and they bounce. For any business contact, you should use a real form backend (like splitforms) that POSTs to your server and emails you directly, regardless of what email client the user has set up.
Mailto vs contact form — which should I use?
Use mailto for personal/portfolio sites where the visitor probably has Gmail or Outlook configured, and the email content is short ('hi, want to grab coffee'). Use a contact form for any business site where you can't afford to lose a lead because the user didn't have a configured email client. splitforms is the easiest backend — drop in a form, point the action at our endpoint, and submissions land in your inbox plus a dashboard. Free for 1,000 submissions/month.
Will the body parameter work in Gmail web?
Yes, if the user has Gmail configured as their default mailto handler in the browser. Chrome and Firefox both support setting Gmail as the default mailto handler, but it requires a one-time user action that most users haven't done. This is another reason mailto is unreliable for business use — the body content frequently gets dropped or the link does nothing at all for users on Gmail web with no handler set.
Can I prevent the mailto link from being scraped by spam bots?
Yes — use the email obfuscator tool to encode the address as HTML entities or with a tiny JavaScript decoder. The obfuscator is at /tools/email-obfuscator. For mailto generators specifically, you can also output the link via a `data-email` attribute and assemble it on click — but for any real volume, a form backend is the right answer because it never exposes your email address in the page source at all.
Tired of users without email clients?
Drop in a free HTML contact form that POSTs to splitforms. Every visitor can submit — no email client required. 1,000 submissions/month free.
Get a free splitforms key →