# Email QR codes — how they work

> An email QR code stores a mailto: URI. Scanning it opens the phone's mail app with the recipient, and optionally the subject and body, already filled in. Nothing is sent automatically — the user still has to press send, which is why it is safe to print in public.

Source: https://useqr.app/email-qr-code · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## The payload

A single RFC 6068 `mailto:` URI:

```
mailto:hello@example.com?subject=Warranty%20claim&body=Order%20number%3A%20
```

The recipient sits before the `?`. Everything after it is percent-encoded query
parameters. Spaces become `%20`, colons `%3A`, ampersands `%26`. Getting that encoding
wrong is the number one reason a prefilled body arrives truncated at the first space.

Supported parameters that phones actually honour: `subject`, `body`, `cc`, `bcc`.

## Keep the body short

Two independent limits bite here:

1. **The QR code itself.** A 400-character body pushes you to a version-12 code or
   larger, which needs a bigger print.
2. **The mail client.** iOS Mail truncates very long `mailto:` bodies, and behaviour
   differs between Gmail, Outlook and Apple Mail. Anything past roughly 300 characters
   is unreliable across the board.

Treat the prefilled body as a scaffold — a couple of labelled lines the user fills in —
not as a letter.

## Line breaks in the body

Encode a newline as `%0A`. A literal newline character inside the URI is not portable.
UseQR does this for you when you press Enter in the body field.

## Where email QR codes earn their place

- **Warranty and support cards** in a product box, prefilled with a subject line that
  routes the mail correctly.
- **Feedback prompts** where you want a written reply rather than a star rating.
- **Job adverts and posters**, prefilled with the role reference so applications land
  in the right inbox.
- **Conference booths**, where a prefilled subject lets you attribute the lead.

## The privacy consideration

Printing `mailto:` in public exposes that address to scrapers who photograph it, the
same way any published address is exposed. Use a role address (`support@`,
`careers@`) rather than a personal one, and filter on the prefilled subject.

## FAQ

### Does an email QR code send the email automatically?
No. It opens the user's mail app with the fields prefilled. They still have to press send. There is no way for a QR code to send mail on its own, which is what makes it safe to print publicly.

### Can I prefill the subject and body?
Yes, both, plus cc and bcc. Keep the body under about 300 characters — some mail clients truncate longer ones, and a long body also makes the code denser and harder to scan.

### Why does my prefilled body stop at the first space?
The body was not percent-encoded. Spaces must be written as %20 in the mailto: URI. UseQR encodes this automatically.

### Which mail app opens?
Whichever is set as the device default. On iOS that may be Apple Mail, Gmail or Outlook; the mailto: handler is the user's choice, not yours.

## Try it

- https://useqr.app/email
- https://useqr.app/feedback
- https://useqr.app/vcard
