Contact Link Generator — mailto, WhatsApp & SMS
Three kinds of tap-to-contact links on one page: email links that open a pre-addressed draft, WhatsApp links that start a chat with your message typed in, and SMS links for text-first audiences. Encoding is handled — spaces, line breaks, and emoji all survive.
Your link
Enter a recipient address to build the link.
Add the link to a design in Moda
Wire your new contact link into an email signature, link-in-bio page, or website button.
Try Moda free →mailto links: subject and body that arrive intact
A mailto link can pre-fill recipients, cc, bcc, the subject line, and the message body. The catch is encoding: spaces, line breaks, and punctuation in the subject or body must be percent-encoded, and using the wrong scheme (the form-style “+” for spaces) makes mail apps show literal plus signs. This generator encodes per the mailto standard, so multi-line bodies open as multi-line drafts. Multiple recipients are comma-separated in the To field.
WhatsApp links need the international number format
wa.me links identify the account by phone number in digits-only international form: country code first, no plus sign, no leading zeros, no spaces or dashes. Paste your number however you have it — “+44 (0)7911 123456” or “0044…” — and the tool normalizes it, flagging numbers that can’t work, like local forms with a leading zero and no country code. The optional message appears pre-typed in the chat box; the visitor just hits send. It works whether the visitor uses WhatsApp on their phone or WhatsApp Web on a laptop.
SMS links and the iOS/Android history
The sms: scheme opens the messaging app with the number filled in, and ?body= pre-fills the text. Years ago iOS required a quirky separator (a semicolon before the body, then “&body”), which spawned a generation of conflicting advice. Current iOS and Android both open the standard sms:number?body=… form this tool emits. SMS links only make sense on phones — desktop browsers usually have nothing to open them with — so use them where you know the audience is mobile.
Where these links out-perform contact forms
A tap-to-contact link removes every step between intent and message: no form, no page load, no typing your own email address. They shine in email signatures, link-in-bio pages, QR-coded print, and mobile landing pages. The trade-off is spam exposure for mailto (the address is visible in the page source) — fine for addresses that are public anyway, worth weighing for ones that aren’t.
Frequently asked questions
Why does my pre-filled message show %20 or plus signs?
The message was encoded with the wrong method — form encoding turns spaces into “+”, and unencoded text breaks at the first space or ampersand. Links from this page use percent-encoding as the URL standards require, which every mail, WhatsApp, and SMS client decodes back to normal text.
Do wa.me links require the visitor to have my number saved?
No — that’s their main advantage. The link opens a chat with your number directly, saved contact or not. You need a WhatsApp account on that number to receive the messages; the visitor needs WhatsApp installed or WhatsApp Web logged in.
Can I put line breaks in the pre-filled message?
Yes. Write the message with real line breaks in the field and they’re encoded as %0A, which WhatsApp, mail clients, and messaging apps render as line breaks again. Emoji survive the same way.
Will the SMS link work on desktop?
Usually not — most desktop browsers have no SMS handler, so the click does nothing (macOS with Messages set up is the exception). Use SMS links in contexts that are reliably mobile: QR codes, mobile landing pages, app screens. mailto links work everywhere a mail client exists.
Does a mailto link expose my address to spam bots?
The address is readable in your page’s HTML, and scrapers do harvest mailto links. For a public role address (hello@, support@) that’s normally acceptable. For a personal address, weigh a contact form or an address you can rotate — obfuscation tricks mostly inconvenience humans more than bots.