[Solved] mailto using javascript

I want to open a new outlook mail template with the ‘To address’ whenever a user clicks an image. I have return my code in a html page(linked with the image), whenever it loads the javascript should open a new mail template. But the functionality is not working. Kindly let me know what is wrong in my code.

body onLoad="redirect()"

script language="JavaScript"

function redirect() 

      var email = "[email protected]"
      var mailto_link = 'mailto:' + email
      window =, 'emailWindow')
      if (window && && !window.closed)         
Enquirer: Sathish


Solution #1:

No need for jQuery. And it isn’t necessary to open a new window. Protocols which doesn’t return HTTP data to the browser (mailto:, irc://, magnet:, ftp:// (<- it depends how it is implemented, normally the browser has an FTP client built in)) can be queried in the same window without losing the current content. In your case:

function redirect()
    window.location.href = "[email protected]";
<body onload="javascript: redirect();">

Or just directly

<body onload="javascript: window.location.href="[email protected]";">
Respondent: StanE

Solution #2:

Please find the code in jsFiddle. It uses jQuery to modify the href of the link. You can use any other library in its place. It should work.


<a id="emailLnk" href="#">
    <img src="">


$(document).ready(function() {
    $("#emailLnk").attr('href',"[email protected]");


Another code sample, if the id is known only during the click event

$(document).ready(function() {
         window.location.href = "[email protected]";
Respondent: Ramesh

Solution #3:

With JavaScript you can create a link ‘on the fly’ using something like:

var mail = document.createElement("a");
mail.href = "[email protected]";;

This is redirected by the browser to some mail client installed on the machine without losing the content of the current window … and you would not need any API like ‘jQuery’.

Respondent: GuerraTron

Solution #4:

You can use the simple mailto, see below for the simple markup.

<a href="[email protected]">Click here to mail</a>

Once clicked, it will open your Outlook or whatever email client you have set.

Respondent: Allan

Solution #5:

I’ve simply used this javascript code (using jquery but it’s not strictly necessary) :

    $( "#button" ).on( "click", function(event) {
         $(this).attr('href', "[email protected]?subject=hello');

When users click on the link, we replace the href attribute of the clicked element.

Be careful don’t prevent the default comportment (event.preventDefault), we must let do it because we have just replaced the href where to go

I think robots can’t see it, the address is protected from spams.

Respondent: Proustibat

Solution #6:

I don’t know if it helps, but using jQuery, to hide an email address, I did :

    $(function() {
        // planque l'adresse mail
        var mailSplitted 
            = ['mai', 'to:mye', '[email protected]', 'addre', ''];

        var link = mailSplitted.join('');
        link = '<a href="' + link + '"</a>';

I hope it helps.

Respondent: Camille Sauvage

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Most Popular

To Top
India and Pakistan’s steroid-soaked rhetoric over Kashmir will come back to haunt them both clenbuterol australia bossier man pleads guilty for leadership role in anabolic steriod distribution conspiracy