Skip to main content
QR codesmailto linkNo sign-up

Email QR Code Generator

This writes a mailto link — the same thing behind an email address on a web page, with the subject and body added as parameters. Scanning it opens a draft with everything filled in. Spaces encode as %20 rather than plus signs, and line breaks as %0D%0A, which is what keeps a two-line message from arriving as one.

An email with the address, subject and body already filled in.

Appearance — all of it free

Caption

Print sizing

50 cm · 20 in

Both matter. Distance decides how big the code has to look; the printer decides how small a module it can hold. Whichever asks for more is the size to print.

Your code

Fill in the fields above and the code appears here.

What is actually inside this code

Two lines of body text. The %0D%0A between them is a single line break, spelled out the way the standard requires.

Send to
orders@example.com
Subject
Order question
Body
Hello, I have a question about my order.

encodes as

mailto:orders@example.com?subject=Order%20question&body=Hello%2C%0D%0AI%20have%20a%20question%20about%20my%20order.

115 bytes — a version 7 symbol, 45 modules a side. The phone opens an email draft with the address, subject and both lines in place.

The example above, encoded. It scans.

mailto, and the older format you will still see suggested

An email QR code should carry a `mailto:` URI. It is a real standard, it is what every mail client on every platform already understands from ordinary web links, and it stays readable as plain text so you can check it.

The alternative you will find in older guides is `MATMSG:`, a format from the Japanese feature-phone era. Some scanners still recognise it. Enough do not that there is no reason to choose it in 2026, and nothing it does that mailto does not.

The two encoding details that actually break things

A space is `%20`, never a plus sign. The plus convention comes from HTML form submission, which is a different context with a different rule, and a subject encoded that way arrives with plus signs where the spaces should be.

A line break is `%0D%0A` — carriage return then line feed, in that order, both of them. This is the one that catches people out, because a textarea gives you a bare newline and encoding just that produces `%0A` on its own. Some clients cope. Some run every line together into a paragraph. This tool converts the line breaks before encoding, which is why the example has the pair.

What a prefilled draft is actually good for

It removes typing, and that is the whole of it. It does not send the email, it cannot guarantee one gets sent, and it has no bearing on whether anyone replies.

That sounds obvious and it changes how the subject should be written. "Order question" describes what the email is about. "Approved refund" asserts a state that scanning cannot create — and if the person sends it unchanged, your inbox now contains a message claiming something nobody decided.

The same restraint applies to the body. A prompt works: a greeting, a sentence, and a gap where their order number goes. An invented order number so the draft looks complete does not, because it is wrong for everyone who scans it.

  • Subject describes the topic, not an outcome.
  • Body is short enough to read on a phone before sending.
  • Anything you need from them is asked for, not filled in.
  • Nothing confidential — the whole string is readable from the printed code.

Length is worth watching for a second reason. Boilerplate goes into the URL percent-encoded, and percent-encoding roughly triples the cost of every space and punctuation mark. A paragraph of terms in the body can push a code up several versions, which means finer modules and a bigger print.

Frequently asked questions

Should an email QR use mailto or MATMSG?

mailto. It is the standard URI form, every mail client understands it from ordinary web links, and it stays legible as plain text so you can check it before printing. MATMSG is a pre-smartphone Japanese convention that only some scanners still read, and it offers nothing mailto does not.

How are spaces encoded in the subject and body?

As %20, not as plus signs. The plus convention belongs to HTML form submission, a different context with a different rule, and a subject encoded that way arrives with plus signs in place of spaces. This tool encodes it correctly and shows you the finished string.

How do I get a line break in the body?

It has to be %0D%0A — carriage return followed by line feed. A bare newline typed into the box would encode as %0A alone, which some mail clients ignore, running your lines into a single paragraph. This tool converts line breaks to the pair before encoding, so typing normally gives the right result.

Will a prefilled email get me more replies?

It removes the work of typing an address and a subject, which is a real friction. Beyond that, nothing about a QR code influences whether someone writes or sends the message. Keep the subject accurate and the body short, and avoid wording that assumes an outcome the scan cannot produce.

Other things a QR code can do

Every type, one tool

QR Code Generator

Colours, shapes, a logo, a caption, a print-size check and an A4 sheet — all of it free, none of it behind an account, and the code stays yours because the data is inside it rather than on our server.

Open the full QR code generator →