mailto, tel & SMS Link Generator
Enter the recipient, subject and body to get a properly encoded mailto: link. Line breaks become %0D%0A automatically, so you do not need to know URL encoding. It also builds tel: and SMS links, and gives you both the plain href and a ready-to-paste anchor tag. To inspect the encoding itself, use the URL Encoder / Decoder.
🔒 Runs in your browser · Your data is never sent to a server
Separate multiple addresses with commas or line breaks.
International format (+81 3-1234-5678) works best. Full-width digits and hyphens are converted.
Separate multiple numbers with commas or line breaks. Can be left empty.
How to use
- Choose email, phone or SMS under "Link type".
- Fill in the recipient, subject and body (for email), the phone number, and so on.
- Press "Try the link" to check that your mail or phone app opens.
- Use "Copy href" or "Copy HTML" and paste it into your page.
Notes
- A mailto link opens whatever mail app (or web mail handler) the visitor has set up. If none is configured, nothing may happen.
- Length limits for the subject and body vary by browser and mail app. Links over 2,000 characters can be truncated, so a warning is shown.
- Line breaks are written as %0D%0A, following RFC 6068. mailto cannot carry HTML formatting or file attachments.
- RFC 5724 uses "?body=" for the SMS message, but older iOS versions needed "&body=". Behavior differs by device, so test on real phones. Android and iOS also handle multiple recipients differently.
- Domestic numbers starting with 0 will not connect when dialed from abroad. If visitors from other countries may see the page, use the international format such as +81.
- If an email domain uses non-ASCII characters, convert it to punycode (xn--) first. This tool does not do that for you.
Glossary
mailto
A URL scheme that opens a new email draft. Headers such as subject and body follow the address after "?". Defined in RFC 6068.
tel
A URL scheme that opens the dialer. Defined in RFC 3966; an extension is added with ";ext=".
sms
A URL scheme that opens a new text message. Defined in RFC 5724; the message goes in the "body" parameter.
Percent-encoding
Replacing characters that are unsafe or special in URLs with % and hex digits. A line break becomes CRLF, written %0D%0A.
FAQ
How do I add line breaks to a mailto body?
Replace each line break with %0D%0A (CRLF). Some mail apps accept a bare %0A, but RFC 6068 specifies %0D%0A. This tool converts line breaks in the body for you.
Why are spaces written as %20 instead of +?
In mailto subjects and bodies, some mail apps show a literal "+" instead of a space. Using %20 always works, so that is what this tool writes.
How do I add several CC or BCC recipients?
Separate the addresses with commas. Here you can enter them separated by commas, semicolons or line breaks. BCC addresses stay hidden in the sent mail, but anyone can read them in the page source of your link.
Why does the SMS body not appear on an iPhone?
The standard form is sms:number?body=text, but older iOS versions only read sms:number&body=text. Pick the iOS style under "Body separator" and test it. Results depend on the device and OS version.
Do I need to remove hyphens and parentheses from phone numbers?
In tel: links, hyphens, dots and parentheses are allowed as visual separators; spaces are removed. For visitors from different countries, use the international format such as +81.
Share this page
