Contact pattern desk · Four honest options
Choose the contact path by what must happen after the click.
Plain mailto, a contact form, a copy action, and a webmail picker solve different jobs. Compare the handoff, the setup you own, and the boundary around message data before you choose.
Four jobs
Each option moves responsibility to a different place
The right answer depends on whether the browser, the visitor, or your own intake system should own the next step.
Lowest setup
Plain mailto
Let the browser hand a normal email link to the visitor’s configured mail handler.
Best fitA known audience with reliable mail apps
Structured intake
Contact form
Collect the fields your site needs, then pass them through a receiving system you control.
Best fitSupport, qualification, and routed requests
Universal fallback
Copy the address
Give visitors the address and let them choose where and how to compose the message.
Best fitA dependable secondary contact action
Provider choice
smart-mailto
Keep the mailto link, then offer webmail, native mail, or copy before delegation.
Best fitPublic audiences using different mail providers
Side-by-side
Mailto alternatives compared by the work they create
No column wins every row. Pick the tradeoff that matches your contact flow, then keep a visible route for anyone the primary action does not serve.
| Question | Plain mailto | Contact form | Copy address | smart-mailto |
|---|---|---|---|---|
| Visitor experience | One click hands the request to the configured browser or device handler. | The visitor stays on the site and completes the fields the form requires. | The visitor copies the address, opens a composer, and pastes it manually. | A picker adds one choice, then opens webmail or native mail, or copies the address. |
| Setup burden | One anchor with a valid mailto URL. | A form interface plus a receiving, validation, and response path. | Visible address text, with an optional clipboard control and success state. | Keep existing anchors, install one package, and initialize it once. |
| Privacy boundary | The link itself does not submit message content to the site. | The site receives the submitted fields and needs a clear handling policy. | The site can expose only the address; composition happens elsewhere. | Regional ordering runs in the browser without a network request for detection. |
| Best fit | Managed devices or audiences with a dependable default mail handler. | Requests that need required fields, routing, or an on-site submission flow. | A secondary fallback that works with any composer the visitor chooses. | Mixed public audiences that use webmail, native mail, or no useful handler. |
| Main tradeoff | The site cannot choose or repair the visitor’s mail handler. | You own the intake system and the data it receives. | The visitor must switch context and build the message themselves. | The picker adds a step for visitors whose current mail setup already works. |
Choose by use case
Start with the outcome you need to control
The visitor should send from their own account
Use plain mailto when the audience has a reliable handler. Add copy when they may not.
Your team needs the same fields every time
Use a contact form and make the submission path clear.
The address must remain usable anywhere
Show it visibly and offer a copy action.
Visitors use different webmail providers
Use smart-mailto to add a provider choice while keeping the original anchor.
Where smart-mailto fits
A small browser-side choice layer, not a form replacement
smart-mailto keeps a normal mailto anchor and intercepts valid clicks to show a provider picker. It does not submit a form, detect every installed email client, send the message, or guarantee delivery.
Under 8KB
Gzipped core build
Zero
Runtime dependencies
No request
For regional detection
Questions
Mailto alternatives FAQ
What is the simplest alternative to a mailto link?
Showing the email address as text is the smallest fallback. An explicit copy control reduces selection effort, but the visitor still chooses and opens a composer.
Should a contact form replace every mailto link?
No. Use a form when the site needs structured fields, routing, or an on-site submission flow. Keep mailto when the visitor should compose and send from their own account.
Does smart-mailto send or receive the email?
No. It opens a composer in the chosen provider or native mail app, or copies the address. The visitor still reviews and sends the message.
Can these approaches be combined?
Yes. A page can use a form for structured requests, keep a visible email address, and offer mailto or webmail for visitors who prefer their own composer.
Keep the original link. Add the useful choice.
Try the webmail path before you install it.
See the full picker on the live demo, then follow the installation guide for core, React, Vue, or Svelte.