PK Systems PK Systems
Web & marketing

Mailto Link Builder

Generate <code>mailto:</code> links with To, Cc, Bcc, subject and body — properly URL-encoded so line breaks, accents and emoji survive every email client.

Mailto Link Builder

One address, or multiple separated by commas.

Line breaks become %0A in the encoded URL. Most modern email clients render them as new lines.

Mailto link

HTML snippet

What is a mailto link?

A mailto: link is a URL scheme that opens the user's default email client with a pre-filled draft. It was standardised in RFC 6068 and is supported by every major operating system, web browser and mobile platform. The recipient address sits in the path, while everything else — subject, body, Cc, Bcc, even custom headers — lives in the query string and must be properly percent-encoded.

How to use this builder

Type a recipient (or several, comma-separated) into To. Add a subject and body — line breaks, emoji and non-ASCII characters all work. The Mailto link output updates live; copy it as-is for chat, or copy the HTML snippet to drop a clickable link straight into a web page or email signature. Open in email client launches the user's default mail app with the draft populated.

Why some characters look strange in the URL

Spaces become %20, line breaks become %0A, the ? separator becomes %3F if it's in your subject. That's percent-encoding, and it's required: any literal space, line break or reserved character would otherwise break the URL parser. Modern email clients decode the URL and present the draft normally, but some old clients (looking at you, Outlook 2010) don't decode %0A as a line break. If your audience is on legacy desktop clients, keep the body short and on a single line.

Mailto fields

Field Purpose Example
toPrimary recipient(s).alice@example.com
ccCarbon-copy recipients (visible to all).team@example.com
bccBlind-carbon-copy recipients (hidden from others).archive@example.com
subjectThe email subject line.Quick question
bodyPre-filled message body.Hi Alice, …

Frequently asked questions

How long can a mailto link be?
There's no formal limit, but in practice most clients cap the URL at 2 KB or so. If your body is longer than a few paragraphs you'll start hitting issues — the Outlook desktop client truncates around 2,083 characters (the old IE URL limit). Keep mailto bodies short; for anything longer, send a real email.
Can I attach a file?
No. The mailto: scheme has no attachment field — the spec doesn't define one, and no major client implements it as a vendor extension. Your only option is to mention the attachment in the body and have the user attach it themselves.
Why is my line break not showing up?
Confirm that the link uses %0A (or %0D%0A) and not a literal newline. Some clients require %0D%0A (carriage-return + line-feed); this builder emits both for maximum compatibility. If breaks still don't render, the user's client is older than the spec it implements.
Is mailto safe from spam harvesters?
Less safe than it used to be. Modern bots happily scrape mailto: attributes from HTML. Obfuscation (rendering the address with JavaScript, replacing @ with an image) helps a little; using a real contact form behind a CAPTCHA helps a lot more. For low-traffic sites, mailto with a public address you don't mind retiring is a fine trade-off.
Can I prefill multiple recipients in To?
Yes. Comma-separate addresses in the To field. Most clients also accept semicolons, but the RFC says comma. Stick to comma for portability.
Does the tool send any data?
No. Encoding happens entirely in your browser — the link is a string, not a request. The only network traffic is when you click Open in email client, which hands the URL to the OS so the default mail app can open it.