Visual RFC.
ALL RFCs / RFC 6068
Read the RFC ↗

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

  1. Read the template

  2. Review the message

  3. 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
Start with chapter one →

This introduction explains RFC 6068 (2010). Read the original RFC ↗