One scan opens an email that is ready to send.
Create a QR code that opens a new email to your address, with an optional subject and message already filled in. The person who scans it reviews the draft and taps Send.
Frames use your current colours. Choosing one adds a caption frame around your code and turns off any active Outline Design.
This email QR code generator builds a standard mailto: link from your address and an
optional subject and message, then turns it into a QR code you can customize and download. When
someone scans it, their phone opens a new email in the mail app it's set up to use, with those
details filled in. Nothing is sent until they tap Send. It's free, with no signup.
How do I make an email QR code? Type the email address, add a subject and a short message if you like, check the preview, customize the design, scan-test it with a phone, then download the PNG.
Loading designs…
Frame won't make a code until the address looks like name@domain.com, so a blank or mistyped field can't slip through.
Add a subject such as “Question about my order” and a short message, so people know what to write.
The draft opens in their mail app. They can edit it, and nothing is sent until they tap Send.
The address and message are inside the code, so use a shared inbox for public signs.
An email QR code opens a new email draft with the recipient, and optionally a subject and
message, already filled in. It holds a mailto: link, the same kind of link as an email
address on a web page. Scanning it hands that link to the phone's mail app. The person doesn't have
to type your address, and they can still change the draft before sending it.
This generator only builds the link. It doesn't send email, connect to an email account or check that the address has a working inbox.
Frame stores a standard mailto: link in the code. With a subject and message, it
looks like this:
mailto:hello@example.com?subject=Question%20about%20my%20order&body=Hi%2C%20I%20have%20a%20question%20about%20my%20recent%20order.
hello@example.com.?subject=.body=. Line breaks are kept.The subject and message are encoded so they survive inside the link: a space becomes
%20, a comma %2C, an ampersand %26 and a line break
%0D%0A, while accents and other scripts are stored as UTF-8. You type normally; Frame
does the encoding.
support@yourcompany.com.The phone reads the mailto: link and offers to open it. If a mail app is set up, it
opens a new draft with the To, Subject and message fields filled in from the code. The person can
edit any of them, and nothing is sent until they tap Send. Frame never sends the email.
Which app opens is up to the phone: its default mail app, or whichever app it asks them to choose. If no mail app is configured, the phone may show a prompt or do nothing, so for audiences who might not use email on their phone, print the address next to the code as well.
Everything you type is stored in the code itself, so a longer subject and message mean more modules (the small squares) and a denser code. We generated four example codes with Frame's own QR encoder, at the default error correction (M) and at H, which Frame switches to automatically when you add a logo. All eight decoded in our scan check.
| What's in the code | Link length | Modules | Modules with a logo | Suggested width, close range |
|---|---|---|---|---|
| Address only | 24 characters | 25 × 25 | 29 × 29 | 2.5 cm (3 cm with a logo) |
| + subject “Question about my order” | 62 | 33 × 33 | 45 × 45 | 3.5 cm (4.5 cm) |
| + a one-sentence message | 130 | 49 × 49 | 61 × 61 | 5 cm (6.5 cm) |
| + a three-sentence message | 249 | 61 × 61 | 81 × 81 | 6.5 cm (8.5 cm) |
How we measured: each mailto: link above, built for
hello@example.com, was encoded with the same QR library and settings the generator
uses, and the module count was read from the resulting code. The suggested widths scale the
QR code size guide's 2.5 cm recommendation for a simple code at
business-card distance by module count, rounded up to the next 0.5 cm. They're a starting point,
not a guarantee: scanning from further away needs a larger code, so use the size guide's distance
chart and test a printed proof.
The takeaway: an address and subject keep the code compact. If the message runs to several sentences, print the code larger or shorten the message.
A printed email QR code is public. Anyone who scans it, or photographs it, can read the address
inside, along with the subject and message. For signs, packaging and anything widely shared, use a
role address such as hello@, support@ or sales@ rather than a
personal inbox, and keep anything private out of the pre-filled message.
Your address and message are processed in your browser and are not uploaded to Frame. Frame doesn't connect to any email service and keeps no scan history.
Frame creates static QR codes: the mailto: link is stored directly in the code, with
no Frame redirect in between. That means the code keeps working without Frame, but it can't be
edited after printing. If the address, subject or message changes, generate a new code and replace
printed copies. The guide to static vs dynamic QR codes
explains the trade-off.
| Type | What a scan does | Best for |
|---|---|---|
| Email QR code | Opens a new email draft to one address | Enquiries, feedback, RSVPs, support requests |
| vCard QR code | Saves a contact card: name, phone, email, company | Business cards and networking |
Want people to keep your details rather than write to you right away? Use the vCard QR code generator.
Email QR code generatorYes. Both are optional. Type them in the generator and they appear in the new email when someone scans the code. Keep the message short: everything you add is stored in the code and makes it denser.
No. Scanning opens a draft in the person's mail app with the address, subject and message filled in. They can edit it, and nothing is sent until they tap Send.
The code holds a standard mailto: link, which phones hand to their mail app. It needs a mail app set up on the phone; without one, the phone may show a prompt instead of a draft. Test with the phones your audience uses.
Yes, it's free, with no signup. It doesn't expire: the link is stored in the code itself. It keeps opening a draft to that address for as long as you use it, even if the inbox later stops working.
Yes. Any email address works, including Gmail, Outlook and your own domain. The code only stores the address; which app opens the draft depends on the phone that scans it.