Email QR code
One scan opens a new email, already addressed. An email QR code uses the mailto: scheme to pre-fill the recipient, and optionally the subject and message. Here's the exact format, the URL-encoding rules that matter, and where it's genuinely useful.
The mailto: format
Email QR codes use the same mailto: scheme that email links on web pages use. The simplest form is just an address:
mailto:hello@example.com
You can pre-fill the subject and body by appending query parameters:
mailto:hello@example.com?subject=Support%20request&body=Hi%20team%2C
The rules:
- The address comes first, right after
mailto:. - A
?begins the optional parameters;subjectandbodyare joined with&. - Spaces and special characters must be percent-encoded — a space becomes
%20, a comma%2C, a line break%0A. The generator does this for you when you type into the subject and body fields.
When to use it
- Support and feedback — a code that opens an email to your help desk with a subject already set, so messages route correctly.
- Print campaigns — let readers contact you without copying an address by hand.
- Forms and submissions — pre-fill a structured subject like
Job application: Designer. - Events — an RSVP code with a ready-made subject line.
Gotchas worth knowing
Scanning opens a pre-filled draft in the person's email app. They still tap send. That's by design — no email can be sent silently — but set expectations in your call to action ("Scan to email us").
- Behavior varies by device. The draft opens in whatever email app is set as default. Someone with no mail app configured may see nothing happen.
- Keep the body short. Long pre-filled messages bloat the payload and make a denser code. A brief greeting or reference line is plenty.
- Double-check the address. A typo in
mailto:sends replies into the void. Scan and verify before printing. - Encode, don't paste raw. Typing
&or spaces directly into a hand-built URL breaks the parameters. Use the generator fields so encoding is handled.
Adding cc and bcc recipients
The mailto: format supports more than subject and body. You can copy other recipients with cc and bcc parameters, joined like any other query value:
mailto:sales@example.com?cc=manager@example.com&subject=Quote%20request
A few practical notes:
- cc is visible; bcc is hidden. Use
bccwhen you want a silent copy — for instance routing a copy to a CRM inbox without showing it to the customer. - Each address adds length. More recipients mean a denser code, so keep the list short for print.
- Multiple addresses in one field are separated by commas, which must be percent-encoded as
%2C. - The draft still opens for review. As always, the person sees and sends the message themselves — cc and bcc just pre-populate the fields.
Make an email QR code
Enter the recipient, and optionally a subject and message, on the Email tab. The generator assembles a correctly encoded mailto: link and renders the code.
Generate an email QR code
Fill in the address, subject, and message — encoding is automatic. Export a print-ready PNG or SVG, all in your browser.
Open the email generatorFrequently asked questions
Does scanning the code send the email automatically?
No. It opens a pre-filled draft in the person's email app; they review and tap send themselves. Email can never be sent silently from a scan.
Can I pre-fill the subject and message?
Yes. The mailto: format supports ?subject= and &body= parameters. Type them into the generator's fields and the special characters are encoded for you.
Why do my spaces show as %20?
That's correct percent-encoding — spaces and punctuation must be encoded inside a URL. The email app decodes them back to normal text when the draft opens.
What if the person has no email app?
Nothing will happen on a device with no default mail app configured. For broad reach, pair the code with a visible plain-text address as a fallback.