Command Palette

Search for a command to run...

Email QR Code Generator: Let People Email You With One Scan

Email QR Code Generator: Let People Email You With One Scan

T
Toolz Team
|Aug 23, 2026|18 min read

Part of the QR & Barcodes collection

I redesigned my business cards last year and left off the thing everyone leaves off: a way to actually contact me that does not involve typing. The card had my email printed neatly across the bottom, and every single person who wanted to reach me did the same thing, they squinted at it, opened their mail app, and typed my address by hand, usually getting the dot or the domain wrong on the first try. One bounced message later I realised the printed address was the weakest link. So on the next run I added a small QR code that opens a pre-addressed email the moment it is scanned, and the difference was immediate. People scanned, a message to me appeared already filled in, and they just wrote a line and hit send. That is the whole idea behind the email QR code generator, and this guide explains how it works and where it belongs.

TL;DR: An email QR code encodes a mailto: link, so scanning it with a phone camera opens the mail app with a new message already addressed, and optionally pre-filled with a subject and body. The Toolz email QR code generator builds the mailto link per RFC 6068, percent-encodes the fields correctly, and encodes it as a scannable QR code you can download as SVG or PNG. Everything runs client-side: no upload, no signup, no scan tracking, works offline.

I ship WordPress plugins and build SaaS products, and "make it easy to get in touch" turns out to be a recurring design problem across all of them: on a landing page, in an email signature, on a conference booth, on the back of a flyer. A printed email address is a transcription task waiting to go wrong. A QR code that opens a pre-filled message removes the typing entirely, and because it is a static code with no short link in the middle, it keeps working forever with nothing to maintain. This is the reasoning behind every field in the tool.

What is an email QR code?

An email QR code is a QR code whose payload is a mailto: link - a scheme defined by RFC 6068, which is also where the rules for prefilling a subject and body come from - the same link scheme a mailto: hyperlink uses on a web page. When a phone camera reads it, the operating system recognises the scheme and offers to open the mail app with a new message, pre-addressed to the recipient baked into the code. Optionally the code can also carry a subject line and a message body, and even CC and BCC recipients, so the composer opens with those fields already filled and the sender only has to review and send.

The point of encoding this in a QR code rather than printing the address is to remove the human from the copying loop. A printed address has to be read and re-typed, and every character is a chance to introduce an error, a swapped letter, a wrong domain, a missing dot, all of which produce a bounce or, worse, a message sent to a stranger. Scanning is deterministic: the recipient in the code is exactly the recipient the mail app uses, every time. That reliability is why email QR codes show up on business cards, packaging, signage, and email signatures, anywhere the goal is to turn "here is my address" into a single tap. The Toolz email QR code generator builds exactly this kind of code and lets you pre-fill as much or as little of the message as you like.

How does the mailto payload work?

Under the black-and-white squares is a short text string, and getting that string right is most of the job. The format is defined by RFC 6068, the specification for the mailto: URI scheme. The recipient address sits in the path, right after mailto:, and everything else, subject, body, CC, BCC, becomes a query parameter after a question mark, joined by ampersands. A fully loaded example looks like mailto:[email protected]?subject=Hello&body=Just%20saw%20your%20card.

The subtlety is encoding. Header field values cannot contain raw spaces, ampersands, or line breaks, because those characters mean something structural in a URL, so they have to be percent-encoded. A space becomes %20, an ampersand in your subject becomes %26, and a line break in the body becomes %0A. Get this wrong and a subject line with an ampersand silently truncates, or a multi-line message collapses into one line. The generator handles all of it: it percent-encodes every field the way the spec requires, preserves the line breaks in your body so a multi-paragraph message arrives formatted, and leaves the recipient address readable. You never see the encoding, you just fill in the fields, but it is the difference between a code that works and one that produces a broken email.

Which fields should I fill in?

Only one field is required, the recipient address, and everything else is there to pre-fill the message for the sender's convenience. Here is what each field does and when to use it.

Field Required What it does When to use it
Recipient Yes The address the email is sent to Always, it is the whole point
Subject No Pre-fills the subject line To route or label incoming mail, e.g. "Booth enquiry"
Body No Pre-fills the message body To prompt the sender or add a template
CC No Adds a visible carbon-copy recipient To loop in a shared or team inbox
BCC No Adds a hidden copy recipient To silently archive to a second address

The recipient is the only address everyone who scans the code will send to, so it is worth double-checking, a typo here is baked into every printed copy. A subject line is the most useful optional field, because it lets you triage incoming mail: a code on a conference booth that pre-fills "Booth enquiry" means those messages sort themselves in your inbox. The body is handy for a gentle prompt, "Tell me which product you're interested in", so the sender is not staring at a blank message. CC and BCC are for the cases where a copy should go somewhere else automatically, a shared support inbox on CC, a personal archive on BCC. Leave any of them blank and the sender simply fills that part themselves. If you also need a general-purpose code for a URL or plain text, the QR code generator covers those, and for network access the WiFi QR code generator uses the same encoder.

How do I create an email QR code with the tool?

The flow is short. Enter the recipient email address in the first field, that is the minimum needed to produce a working code. Add a subject and a message body if you want the email pre-filled, and click "Add CC / BCC" to reveal those two optional fields when you need them. The preview updates live as you type, so you can see the code form the moment the address is valid.

Before you download, set the error correction level and the colours. Error correction has four levels, L, M, Q, and H, that recover roughly 7, 15, 25, and 30 percent of a damaged code respectively. Leave it at M for a clean printed code; raise it to Q or H if the code will be small, printed on a textured surface, or partly covered by a logo. Set the foreground and background colours to match your design, keeping strong contrast, dark on light, so scanners read it reliably. Then export: SVG for print and signage because it stays razor-sharp at any size, or PNG at a chosen pixel size for a screen, a slide, or an email signature. Both download with no watermark and no account. Test the finished code with two or three different phones before you commit it to a print run, cheap insurance against a code that looks fine but scans badly. If you are building contact assets more broadly, the vCard QR code generator encodes a full contact card the same way.

Is it safe to put my email address in a QR code?

There are two safety questions here, and they have different answers. The first is whether the tool is safe to use, and the answer is a firm yes, because the entire encoding happens in your browser. The address and message you type are turned into a QR code by JavaScript on your own device, with no upload, no server round trip, and nothing logged or stored. You can prove it by opening the network tab and watching, nothing leaves the page, and once loaded the tool works with the internet disconnected.

The second question is about the code itself, and here honesty matters: anyone who can scan a printed email QR code can read and email the address inside it, because that is exactly what it is for. That is fine, and intended, for a contact code you want people to use. But it is the reason to think about placement, an email address exposed on public signage can be harvested by spam bots the same way a mailto: link on a web page can, so a personal address on a widely distributed poster may attract junk. For public-facing codes I use a role address like hello@ or contact@ rather than a personal one, so the code is disposable and the personal inbox stays clean. The tool cannot make that judgement for you, but knowing the trade-off is part of using it well. I wrote up the general argument for client-side processing in the data privacy guide for online tools.

Static versus dynamic email QR codes: what is the difference?

This is the distinction that separates a free tool from most of the ones that ask you to sign up. The code this tool produces is static, meaning the mailto: link is encoded directly into the pattern. The information lives in the image itself, there is no intermediary, so the code works forever, has no running cost, and cannot be switched off by anyone. Nobody, including me, can see when or how often it is scanned, because there is nothing in the middle to count.

A dynamic QR code, which is what most signup-required generators produce, encodes a short link to their server, which then redirects to your email. That indirection buys two things: you can change the destination after printing, and the provider can count every scan on a dashboard. It also introduces two liabilities: the code stops working if that company shuts the service down or you stop paying, and every scan is routed through, and logged by, a third party. For an email contact code, which almost never needs to change and where scan analytics add little, the trade is rarely worth it, a static code that just works and answers to no one is the better default. If you genuinely need editable destinations or scan counts, a dynamic service is the right tool, but you should choose it knowingly rather than because a generator quietly made every code dynamic.

Where does the email QR code fit in a real workflow?

For me it is a contact-surface tool. Any time there is a physical or visual place where someone might want to email me, a business card, a booth banner, a slide at the end of a talk, the back of product packaging, a printed invoice, an email signature image, an email QR code turns "here's my address" into a scan. The subject-line trick does double duty: a code that pre-fills "Speaking enquiry" on a conference slide means those messages arrive pre-sorted, which is worth more than it sounds when the inbox fills up after an event.

It also sits in a small family of contact codes that share the same proven encoder. When I want to hand over a full contact card, name, phone, company, not just an address, the vCard QR code generator is the right choice, and it drops straight into a phone's contacts. For a plain URL, a menu link, a signup page, a portfolio, the general QR code generator covers it, and the WiFi QR code generator handles guest network access on the same signage. All of them run client-side and produce static codes, so you can print a card with an email code and a WiFi code side by side and neither depends on anyone's server. If you are assembling a set of everyday utilities, my developer productivity tools guide covers how the small ones compound, and the web developer toolkit guide rounds out the rest.

What are the limits worth knowing about?

Honesty about limits is part of trusting a tool. An email QR code depends on the scanner recognising the mailto: scheme, which current iPhones and most Android phones do straight from the camera, but a few older Android devices need a dedicated QR scanner app rather than the camera, and the person scanning needs a mail app installed and configured, or the tap has nowhere to go. This is rarely a problem in practice, but it is why the code is a convenience layer over a printed address rather than a full replacement, keeping the address legible somewhere as a fallback is sensible for a mixed audience.

There is also a practical length limit. A very long pre-filled body makes the payload large, which forces a denser QR code that is harder to scan when printed small. Keep the pre-filled body to a short prompt rather than a full letter, the sender is going to write the real message anyway, so the body is best used as a nudge, not an essay. Finally, because the code is static, the recipient address cannot be changed after printing, if you expect the destination to move, a role address that you can forward at the mail-server level is a better choice than a personal one you might abandon. None of these bite for the everyday use of a contact code on a card or a signature. Knowing they exist is just the difference between using the tool well and being surprised by it.

Frequently asked questions

What is an email QR code? An email QR code is a QR code that stores a mailto: link containing a recipient address and, optionally, a subject and message. When a phone camera scans it, the device opens the mail app with a new message already addressed and pre-filled, so nobody has to read or type the address. You can create one free with the email QR code generator.

How do I create a QR code for my email? Enter the recipient email address, then add a subject, body, or CC and BCC addresses if you want them pre-filled. The tool builds the mailto: payload and encodes it as a scannable QR code you can download as SVG or PNG and print. Only the recipient address is required; everything else is optional.

What happens when someone scans the email QR code? On an iPhone and most Android phones, opening the camera and pointing it at the code shows a prompt to open the mail app. Tapping it launches a new message with the recipient, subject, and body already filled from the code, ready for the sender to review and send. The sender still chooses whether to send it.

Can I include a subject line and message body? Yes. Both are optional fields that pre-fill the email. They are percent-encoded into the mailto: link per RFC 6068, and the body preserves its line breaks, so a multi-paragraph message arrives formatted the way you wrote it. Keep the body short, as it is meant to prompt the sender rather than replace their message.

Does the email QR code work on all phones? It works on any phone whose camera or QR scanner recognises a mailto: link, which covers current iOS and Android devices. A few older Android phones need a dedicated QR scanner app rather than the camera, and the person scanning needs a mail app installed to open the message. Keeping the address legible as a fallback helps for a mixed audience.

Is it safe to put my email address in a QR code? The encoding is safe because it happens in your browser and nothing is uploaded. Keep in mind that anyone who scans a printed code can read and email the address, which is the point for a contact code but a reason to consider placement, since publicly exposed addresses can attract spam. Using a role address like contact@ for public codes keeps a personal inbox cleaner.

Does this email QR code expire or track scans? No. It is a static QR code, so the mailto: link is baked into the image, there is no short link to expire and no dashboard counting scans. Generators that require a signup often produce dynamic codes that route through their servers and can stop working if the service ends; this one does not.

Is this email QR code generator free for commercial use? Yes. The QR standard is open and royalty-free, and codes produced here carry no watermark and no usage cap. Use them on business cards, email signatures, packaging, flyers, and event signage without restriction, and because the codes are static there is nothing to renew.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!