RFC 6068 / START HERE
mailto links, before the details
URI means Uniform Resource Identifier. mailto is a URI scheme for addressing resources reached by Internet mail and supplying optional message defaults.
A mailto link can name recipients and prefill a subject or short plain-text body. Configured mail software prepares a draft that the user can edit, send unchanged or cancel.
The idea in one picture
Read the template
Review the message
Choose whether to send
A simplified picture of the idea; the chapters explain the actual mechanisms.
Why it exists
RFC6068 replaces the earlier mailto definition with clearer escaping and UTF-8-based international text support. Preparing the template is separate from submitting email; no automatic server retrieval is implied.
A familiar example
A contact link prepares an email with a café subject. The mail client decodes it, presents the message and asks for approval before the illustrated send. Public links can expose addresses even in bcc, and mailto does not guarantee delivery or privacy.
Helpful background
You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.
What you’ll learn next
Begin with chapter one, or choose a topic.
- Prepare a draft before interacting with mail serversResolving a mailto URI typically creates a message with default values. The user can edit it, send it unchanged, or choose not to send.→
- Separate recipient syntax from query fieldsmailto has an optional recipient list and optional name=value query fields. Parse the components before interpreting their percent-encoded data.→
- Decode data once and keep HTML escaping separatePercent escapes carry bytes inside URI components. They are different from HTML entity escaping and from form encodings that use plus for space.→
- Turn UTF-8 URI text into correctly encoded mailUTF-8 percent-encoding represents non-ASCII template text. The final email then needs its own message encoding; internationalized domains have a separate IDNA conversion.→
- Filter unsafe fields and recognize public URI exposureA URI cannot choose the sender’s identity, routing or MIME machinery. Clients assess dangerous fields, and addresses in a public link remain public even when labelled bcc.→
This introduction explains RFC 6068 (2010). Read the original RFC ↗