A mailto link opens whichever mail app a phone already has set as default, and on plenty of phones that is Apple Mail or Outlook rather than Gmail, even when the address behind it is a Gmail one. MakeQR's built-in email type covers that first case with a standard mailto QR code, prefilled with a recipient, subject and message.
Forcing Gmail specifically needs a different link: a Gmail compose web address, encoded as a plain web address code instead of the email field. Scanning that opens Gmail's own compose screen, in the app when it is installed or in a browser otherwise, regardless of what the phone defaults to.
Building either version
Decide whether the app matters
If any mail app opening is fine, as long as the Gmail address is prefilled, use the standard email type. If it specifically needs to be Gmail's own interface, that's the URL approach below instead.
For a standard email code, use the email type
Fill in the Gmail address as the recipient, plus a subject and message if you want them prefilled. MakeQR handles the punctuation and spacing correctly.
For a Gmail-specific code, build a compose link
Use a Gmail compose web address with the recipient, subject and body included as parameters, then paste that full address into the URL type instead of the email type.
Test both on a phone with a non-Gmail default mail app
That's the clearest way to see the difference: the mailto: version opens the default app, while the Gmail compose link opens Gmail specifically, in-app or in the browser.
Mailto versus a Gmail compose link
A mailto: link is a general instruction any phone understands: open whichever mail app is set as default, with these fields filled in. It doesn't know or care that the address is a Gmail one. A Gmail compose web address is different — it's a specific page on Gmail's own site, so opening it goes to Gmail directly, in the Gmail app if that's installed and set to handle those links, or in a browser tab signed into a Google account if not.
When forcing Gmail specifically is worth the extra step
Most of the time, a standard mailto code is the right choice — the recipient's address is what matters, not which app sends it. Forcing Gmail is worth the extra setup when a support workflow depends on replies landing through Gmail's own labels and filters, or when most of your audience is on Android phones where Gmail is already the default and a compose link opens it more predictably in-app than a generic mailto: sometimes does.
Keeping the fields correct in a manually built link
MakeQR's email type automatically handles spacing, line breaks and special characters in the subject and message. A hand-built Gmail compose address doesn't get that same handling — spaces and punctuation in the subject or body need to be encoded correctly, or the link can arrive broken or truncated. Test it in a browser before pasting it into a code, not after.
What each version contains
The email type produces a mailto: link with the recipient, subject and message as separate parts. The URL approach for Gmail specifically produces a plain web address pointing at Gmail's compose page, with the same three pieces of information carried as parameters in that address instead.
mailto:support@example.com?subject=Order%20question&body=Hi%2C%20I%20have%20a%20questionWhere it goes
A business card, a support-desk sign, or a feedback card at checkout are the common spots — anywhere someone might want to send a quick email instead of calling. A business card code can be small, around 20 mm, since it's read up close.
Print it at least 20 mm (2.0 cm) wide
Mistakes with a Gmail code
Assuming mailto: forces Gmail
It doesn't. A mailto: link opens whatever mail app the phone has set as default, which is often something other than Gmail even for a Gmail address.
Overloading the subject and body
A long prefilled message makes the underlying link longer, which makes the QR pattern denser and harder to scan reliably at small sizes.
Pasting an un-encoded Gmail link into a URL field
Spaces and punctuation in a manually built compose address need proper encoding, or the subject and message can arrive broken. Test the link in a browser first.
Static or dynamic for a Gmail code
Static works for almost every case here, since neither version — mailto: or a Gmail compose link — is something you'd typically need to repoint later; the address you're emailing rarely changes. Dynamic only makes sense if the underlying contact address itself might change, since that's the one thing a dynamic code could update without a reprint.
How dynamic QR codes workWhere this gets used
- A support desk sign lets a customer email a Gmail-hosted support address directly.
- A conference booth follow-up card emails a specific intake address after the event.
- A landlord's notice board lets tenants email a Gmail-based property manager with a pre-filled subject.
- A freelancer's business card emails a project inquiry straight to their Gmail inbox.