Mailto Links


Open default mail program, create new message with the TO field already filled out.

<a href="">Email Us</a>  

Adding a subject

Open default mail program, create new message with the TO and SUBJECT field already filled out. Essentially we are adding the parameter subject to the href value.

Spaces in the subject will probably work OK, but to be super-extra sure, you can replace spaces with "%20".

<a href=" from Our Site">Email Us</a>  

Adding CC and BCC

Open default mail program, create new message with the TO, SUBJECT, CC, and BCC field already filled out. Essentially we are adding the parameters cc and bcc to the href value.

Also note that you add multiple values to CC and BCC by comma separating them.

<a href=",,">Email Us</a>

Adding Body Text

Just add the body parameter into the ever-growing list of parameters we are using.

<a href=",,">Email Us</a>


  1. JMLeon
    Permalink to comment#

    Sadly, mailto’s are a call-for-spammers widely, so this is a curiosity more than something to use actually.

  2. Jessi Hance
    Permalink to comment#

    @JMLeon: Not if you use Hivelogic’s Enkoder:

    I just used this today for a client, as a stop-gap till he can set up a contact form.

  3. OldGuy
    Permalink to comment#

    Although people have been steadfast in their belief that the sky would fall, the world would end, and that their email boxes would overflow with spam if they were crazy enough to use mailto, I have yet to see the problem materialize. I have a number of smallish sites that have been up for years using mailto without ever having a problem. I do use contact forms on larger sites but only because I think it looks more professional.

    Excellent post Chris! Very handy stuff.

  4. Kartlos Tchavelachvili
    Permalink to comment#

    I think you can use also the Paragraphs in the body message. Syntax = %0A%0A

    MailTo with multiline message in Body

  5. Kartlos Tchavelachvili
    Permalink to comment#

    a href=” message’s first paragraph.%0A%0ASecond paragraph.%0A%0AThird Paragraph.”

  6. Brian Lang
    Permalink to comment#

    Caution: This may NOT work with all mail clients. I’ve had problems getting this to work with some mail clients in the past.

  7. chaitanya T

    Thank you for the simple and effective approach for a contact option. Its nice.

  8. Zeyad
    Permalink to comment#


  9. Don

    Thank you

  10. Pete
    Permalink to comment#

    Thanks for reminding me about something I learnt originally in the 90s!

    • Hamlegs Harold
      Permalink to comment#

      You mean learned?

    • whatever
      Permalink to comment#
    • Roger
      Permalink to comment#

      Learnt is ok in British English, but not in common use in the US.

    • Sig Paulson

      Well, I’m glad you learnt it in the 90s. Some of us are still learning. What if you hadn’t and now wanted to? We’re not all computer junkies. This is what gets me. Because a computer tech or computer lover knows something they think everyone should already know or they are to be looked down on. Arrogance runs rampant in this field.

  11. kunjan raychura
    Permalink to comment#

    Style links depending on file format

    /* external links */
    padding-right: 20px;
    background: url(external.gif) no-repeat center right;

    /* emails */
        padding-right: 20px;
        background: url(email.png) no-repeat center right;
    /* pdfs */
        padding-right: 20px;
        background: url(pdf.png) no-repeat center right;
  12. pankaj
    Permalink to comment#

    I am using this code in ipad app and it’s working perfectly but the problem is that all work is done out side the app means after mail, app is closed.

  13. BSK
    Permalink to comment#

    Can we attache any attachment with this. Please let me know.

  14. kevin
    Permalink to comment#

    The end user must have a default mail prgm set up to work in windows.

  15. Neil Monroe

    @premkumar: It doesn’t seem to work in Safari or Chrome (probably WebKit-based browsers, in general) if there are actual spaces in the querystring parameters to the mailto: link.

    If you replace the spaces with %20, then you should be back in business.

  16. Ramesh


    I want a source code, when a visitor wants to click on “Email Offer” then a pop up is open with option of email clients, like – outlook, gmail and yahoo. When he/she select email client then it opens with my email id, Subject and offer. Or he/she wants their default email client in future when they visit again, a check box is also display in pop up.

  17. Nabfars

    Is there any way to align the text in mailto body to the right ?
    I am adding Arabic text in mailto body, Arabic text starts from right to left
    ill be great full for any help and suggestion

  18. Klaus
    Permalink to comment#

    Would I be able to use this code in Facebook, when writing on my wall?

  19. Kate
    Permalink to comment#

    I would like to use a mailto command in SharePoint for use internally (Outlook 2010). I understand how to do the to, subject and body text, but I’d like to be able to dictate the background used (from those available in Outlook) so that users have a choice. Any ideas?

  20. Juan JOcop

    I have a form that is a test, which asks for the name of a student who fills. I want to send an email warning that the test was completed and will include the student’s name. How do I include in HREF student’s name? Thank you

  21. Trin
    Permalink to comment#

    It’s still very nice so far. Thanks
    my web is here
    also here

  22. ThatGuySam
    Permalink to comment#

    Could you put HTML into the body this way?

    For example, bolding a word.

  23. Robin
    Permalink to comment#

    Is there any way to include a variable in the mailto code e.g the filename of the page it appears on? It could then be used to receive comments?

Leave a Comment

Posting Code

We highly encourage you to post problematic HTML/CSS/JavaScript over on CodePen and include the link in your post. It's much easier to see, understand, and help with when you do that.

Markdown is supported, so you can write inline code like `<div>this</div>` or multiline blocks of code in triple backtick fences like this:

  function example() {
    element.innerHTML = "<div>code</div>";

We have a pretty good* newsletter.