How to Make a QR Code for an Email (With Subject and Message Pre-Filled)

An email QR code saves people from typing your address by hand. They point their phone camera at the code, tap the link that appears, and their email app opens a new message already addressed to you. You can even pre-fill the subject line and the first lines of the message, which is handy for feedback forms, support requests, event replies and lost-and-found labels.

This guide shows how to build an email QR code for free with QR Studio, how the underlying mailto: format works, how to encode spaces and special characters, and how to test the code before you print it.

How an email QR code works

A QR code just stores text. For an email code, that text is a mailto link, the same kind of link that opens your email app when you click an email address on a website. The simplest version is:

When a phone scans it, the camera recognizes the link and offers to open it in the default email app. The scanner then sees a new, unsent message. Nothing is sent automatically: the person still has to tap Send, and they can edit the message first.

Step by step: make an email QR code with QR Studio

  1. Open the QR code generator and choose the URL tab.
  2. Type your mailto link in the box, for example mailto:hello@example.com. QR Studio keeps links that start with mailto: exactly as typed, rather than adding https:// in front.
  3. Check the preview. The line under the code shows the exact text that was encoded and how many characters it has. Make sure it matches what you meant to type.
  4. Adjust the size and colors if you want, keeping strong contrast between the dark modules and the light background.
  5. Download the code and test it on at least two phones before you print or share it.

You can also paste the same link into the Text tab. Either way, the phone sees the same mailto text.

Make a free QR code for a link, WiFi or contact card — generated in your browser.

Open the free QR code generator →

Adding a subject, message, CC and BCC

The mailto format lets you add extra fields after a question mark. Separate each field with &:

FieldWhat it doesExample
subject=Pre-fills the subject line?subject=Order%20question
body=Pre-fills the message text&body=Hi%20there
cc=Adds a CC recipient&cc=manager@example.com
bcc=Adds a BCC recipient&bcc=archive@example.com

Putting it together, a code for a support inbox might store:

That link is 51 characters long. A longer version with a message might be:

To send to more than one main recipient, separate the addresses with a comma: mailto:sales@example.com,support@example.com.

Most email apps on phones fill in the subject and body from a mailto link, but support varies between apps. That is one more reason to test with the phones and apps your audience is likely to use.

Encoding spaces and special characters

Links cannot contain plain spaces, and some characters have special meaning inside a mailto link. Replace them with their percent-encoded form:

CharacterWrite it as
Space%20
& (ampersand)%26
? (question mark)%3F
# (hash)%23
% (percent sign)%25
Line break in the body%0D%0A

Letters, numbers, periods, hyphens and the @ in the address are fine as they are.

Worked example

Say you want the subject "Lost & found" and a message with two lines, "Item:" and "Where:".

  1. Subject: "Lost & found" becomes Lost%20%26%20found. The space becomes %20 and the ampersand becomes %26. Without that, the email app would read & as the start of a new field and cut the subject short.
  2. Body: "Item:" then a line break then "Where:" becomes Item:%0D%0AWhere:.
  3. Full link: mailto:desk@example.com?subject=Lost%20%26%20found&body=Item:%0D%0AWhere:

Avoid using + for spaces. In web search links a plus can mean a space, but in mailto links it may show up as a literal plus sign in the subject. Using %20 is the safe choice.

Keep the code short and easy to scan

Every extra character makes the QR code denser, with more and smaller squares. A dense code needs to be printed larger and is harder to scan from a distance or in poor light. A few habits help:

Test before you print

Mistakes in an email code are easy to miss because the code itself looks fine. Before you print:

  1. Scan with an iPhone and an Android phone, using the built-in camera app.
  2. Open the link and check the To, Subject and message fields in the email app.
  3. Send a real test message to yourself to confirm the address is spelled correctly.
  4. Test the printed proof at its real size and from the distance people will scan it.

If the code does not scan at all, see why a QR code is not scanning for common fixes like contrast, quiet zone and size.

Good uses for an email QR code

Privacy and spam

An email QR code contains your address in plain text. Anyone who scans it, or photographs it, can read the address, and it can be copied into a spam list just like an address printed in text.

Email QR code vs other options

You want people to...Best choice
Write you a new email nowmailto QR code (this guide)
Save your name, phone and email for latervCard contact QR code
Fill in a form or visit a contact pageA QR code for a link

Frequently asked questions

Can a QR code send an email automatically?

No. Scanning an email QR code opens a new, pre-filled message in the person's email app, but they still have to tap Send. They can also edit or delete the message first.

How do I add a subject to an email QR code?

Add ?subject= after the address, with spaces written as %20. For example, mailto:hello@example.com?subject=Event%20RSVP opens a message with the subject "Event RSVP".

Why does my email QR code show the wrong subject?

The most common cause is an unencoded special character. An & in the subject starts a new field, and a # or ? can also break the link. Replace them with %26, %23 and %3F.

Is an email QR code free to make?

Yes. QR Studio generates the code in your browser for free, and a mailto code is static: it does not depend on a tracking service or redirect, so it keeps working as long as the email address does.

Make a free QR code for a link, WiFi or contact card — generated in your browser.

Open the free QR code generator →

Keep reading