Turn Any Email Address Into a Scannable QR Code
Point a phone camera at this QR code and it opens a pre-filled email — address, subject, and message already typed in. Perfect for business cards, event flyers, conference badges, product packaging, or anywhere you want someone to reach you with one tap.
Everything runs in your browser. Your email address and message are never uploaded anywhere — the QR code is built locally, on your device.
How to Use the Email QR Code Generator
- Enter the recipient email address — the address the email will be sent to when someone scans the code.
- Add a subject line (optional) — pre-fills the email subject so the sender doesn't have to type it.
- Add a message body (optional) — pre-fills the email body with a greeting or context.
- Choose your size and colours — pick a pixel size, foreground colour, and background colour to match your brand.
- Download as PNG or SVG — PNG is great for print and web; SVG scales perfectly to any size without blurring.
Scanning the finished code opens the phone's default email app with the 'To', 'Subject', and 'Body' fields already filled in. The user just taps 'Send'.
Worked Example
Say you run a small business and want customers to contact you from your printed menu. You fill in:
| Field | Value you enter |
|---|---|
| [email protected] | |
| Subject | Catering enquiry |
| Body | Hi, I'd like to find out about your catering options. |
The tool encodes this as a mailto URI:
mailto:[email protected]?subject=Catering%20enquiry&body=Hi%2C%20I'd%20like%20to%20find%20out%20about%20your%20catering%20options.
That URI gets turned into a QR code image. A customer scans it, their email app opens, and the message is ready to send — no typing needed.
How to Generate a Mailto QR Code in Code
If you want to produce email QR codes programmatically, here are minimal working examples.
Python (using the qrcode library)
import qrcode
from urllib.parse import quote
email = '[email protected]'
subject = quote('Catering enquiry')
body = quote("Hi, I'd like to find out about your catering options.")
uri = f'mailto:{email}?subject={subject}&body={body}'
img = qrcode.make(uri)
img.save('email-qr.png')
Install the library with pip install qrcode[pil] before running this.
JavaScript (browser, using the qrcode npm package)
import QRCode from 'qrcode';
const email = '[email protected]';
const subject = encodeURIComponent('Catering enquiry');
const body = encodeURIComponent("Hi, I'd like to find out about your catering options.");
const uri = `mailto:${email}?subject=${subject}&body=${body}`;
QRCode.toDataURL(uri).then(url => {
const img = document.createElement('img');
img.src = url;
document.body.appendChild(img);
});
Install with npm install qrcode. The result is a data URL you can drop straight into an <img> tag or save as a PNG.
How It Works Under the Hood
The tool builds a mailto URI from the fields you fill in — a standard format defined in RFC 6068. Special characters (spaces, commas, ampersands) are percent-encoded so the URI stays valid.
That URI string is then fed into a QR code encoder, which converts it into a grid of black-and-white squares using the ISO/IEC 18004 QR Code standard. No server is involved — the whole process runs in your browser.
Error correction is built into every QR code. Even if part of the code is covered by a logo or scuffed on a printed card, it can still be read. Higher error correction means a denser code, so for most uses the default 'M' (medium) level is a good balance.
When to Use an Email QR Code (and When Not To)
Good fits
- Business cards and name badges — let people email you without typing an address.
- Posters and flyers — a 'contact us' QR code on a workshop poster pre-fills a registration enquiry.
- Product packaging — link directly to a support or feedback email with the product name already in the subject.
- Conference materials — pre-fill the speaker's email and a session name so attendees can follow up instantly.
When another QR type works better
- If you want to track clicks or update the destination later, use a URL QR code pointing to a contact form — you can update the form without reprinting the code.
- For sharing full contact details (name, phone, company, address), a vCard QR code is a better choice.
- If you're sending people to a web page, use a plain URL QR code instead.
Email QR codes never expire — the mailto data is encoded directly into the pattern of squares, not stored on a server. They're free to use and require no account.
Quick How-To: Create Your Email QR Code
- Type the recipient email address into the Email field above.
- Optionally fill in a Subject and Body to pre-compose the message.
- Pick a foreground and background colour to match your design (keep contrast high for reliable scanning).
- Set the size — 300×300 px is fine for screen; go 500 px or higher for crisp print.
- Hit Generate, then download as PNG (web/print) or SVG (scalable vector, ideal for print design files).
When someone scans the code, their phone's email app opens with the To, Subject, and Body fields already filled in — one tap sends it.
Ready to create yours? Use the generator at the top of this page — it takes about 20 seconds.