otto

Delegate your day.

Mailto link builder

Fill in the recipient, subject and message and get a mailto link that opens a ready-to-send email, encoded the way RFC 6068 says.

You just approve.

Bytes2Pro teamUpdated 2 min read

The short version

  • Spaces, ampersands, line breaks and accents are encoded so the link doesn't break.
  • You get the plain link and an HTML anchor, plus a button to test it in your mail app.
  • Nothing is sent. The link is built in your browser.

The link is built in this page. Nothing you type is saved or sent, and no email is sent until you choose to.

Separate several addresses with commas.

HTML

  • There is no recipient, so the link opens a blank message. That is valid when the reader chooses who to write to.

How it works

A mailto link opens a new message in the visitor's mail app with fields already filled in. Type the recipient, Cc, Bcc, subject and message, and the page builds the link as you go. Copy the link, or copy it as an HTML anchor to paste into a web page. The Test it link opens the link in your own mail app, so you can see the result before you publish it.

The link is built in this page. No email is sent, and nothing you type is saved.

The encoding rules

RFC 6068 defines the mailto format, and the builder follows it. Here's what that means in practice.

  • The first field follows a ? and the rest are joined with &. So &, =, ? and # inside your text have to be encoded, or they cut the value short.
  • Spaces become %20. A plus sign isn't a space in a mailto link, so a + in your text becomes %2B.
  • Letters outside basic ASCII are encoded as UTF-8, so an accented name or an emoji survives.
  • Line breaks in the message become %0D%0A, which RFC 6068 requires.
  • Several recipients are separated by commas.
  • A domain name with non-ASCII letters is written in Punycode, which RFC 6068 recommends for the widest support.
  • Line breaks in the subject are turned into spaces, because the RFC advises against them.

Using the link on a page

Paste the HTML where you want the link. The builder escapes the ampersands in the link as & so the HTML is valid. RFC 6068 notes that bots can collect mail addresses from public pages, so you'll want a role address you can filter. Anyone can read a Bcc address in the page source, so don't put a private one there.

When a link doesn't behave

  • If nothing opens, the visitor has no mail app, or no webmail service set to handle mailto links in their browser.
  • Some browsers and mail apps limit link length, so a long message can get cut off. The builder warns past about 2,000 characters. Shorten the message if you see it.
  • RFC 6068 defines no way to attach a file, so a mailto link can't.
  • It won't send anything by itself. The reader still has to press Send.

If you'd like your own emails to look tidy when they arrive, try the email signature generator. And if you answer a lot of email, our page on an email app for Gmail is about Otto, which is ours.

Questions, answered

How do I write a mailto link with a subject and body?

Start with mailto: and the address, add ? then subject= and the encoded subject, and join the body with &body= and the encoded text. The builder does the encoding for you.

How do I put a line break in a mailto body?

Encode it as %0D%0A. RFC 6068 requires that exact form. In the builder, press Enter in the message box and the line break is encoded for you.

Why does my mailto link break when the subject has an ampersand?

An unencoded ampersand starts a new field. It has to be written as %26 inside the link, and as & when the link sits in HTML. The builder handles both.

Can a mailto link attach a file or send automatically?

No. RFC 6068 doesn't define attachments, and the reader has to press Send themselves.

And the rest of the inbox

Otto reads what arrived across Gmail and Outlook, drafts the replies, books the time and keeps track of what you are still owed. It prepares each one and waits for you to approve it.

Try your next step in Otto

Core mail, calendar and tasks are free. AI has an allowance.

Open Otto
Download on theApp StoreComing soon toGoogle Play