JQuery / JavaScript로 링크 할 메일 호출 / 클릭


81

JavaScript에서 mailto 링크 를 호출 하고 싶습니다. 즉, 일반 mailto 링크를 클릭 한 것처럼 사용자 PC에서 이메일 클라이언트를 열 수있는 방법을 원합니다.

어떻게 할 수 있습니까?


예를 들어 작업 : jsfiddle.net/gaboom/h81qov5g
sibidiba

1
시도<button onclick="window.open('mailto:KingRider<contato@sandroalvares.com.br>');">Contact me</button>
KingRider

답변:


138

window.location.href여기에서 다음과 같이 사용할 수 있습니다 .

window.location.href = "mailto:address@dmail.com";

3
본문을 어떻게 추가합니까? mailto : address@dmail.com? body = myBody 및 mailto : address@dmail.com& myBody가 작동하지 않습니다 ...
Max

@jipiboily, 더 설명해 주시겠습니까? 어떤 브라우저를 사용해 보았지만 작동하지 않습니까?
Adi

내가 기억하는 @Adnan은 Opera 및 아마도 더 많은 브라우저에서 작동하지 않습니다. 필요에 따라 해당 문제를 해결할 수 있습니다.
jipiboily

@Rolf 방금 최신 크롬 안정 상태에서 테스트했지만 여전히 작동합니다.
Nick Craver

9
Max, 당신은 이것을 알아 냈을 것입니다. 그러나 미래의 독자들을 위해 : window.location.href = 'mailto:address@dmail.com&subject=Hello there&body=This is the body';. Not ?and not &amp;, just&
cssyphus

9

페이지의 링크와 함께 .click ()을 대신 사용하여 위에서 설명한 빈 페이지 문제를 피할 수 있습니다.

document.getElementById('mymailto').click();
...
<a href="mailto:...." id="mymailto" style="display:none"></a>

나는 이것을 시도했다 :`function Call () {document.getElementById ( 'mymailto'). click (); } <a href="tel:+48123456" id="mymailto" style="display:none"> </a>`및 새 탭이 계속 열립니다.
Yoda 2014 년

3

Outlook과 함께 크롬, IE 및 파이어 폭스에서 테스트 한 나를 위해 작동하는 대답은 다음과 같습니다.

window.location.href = 'mailto:address@dmail.com?subject=Hello there&body=This is the body';

%0d%0a mailto 링크에서 이메일 본문의 새 줄 기호입니다.

%20 사용해야하는 공간 기호이지만 일반 공간에서도 잘 작동했습니다.


1

사실, 빈 페이지를 피할 가능성이 있습니다.

나는 단순히 mailto 링크가있는 iframe을 dom에 삽입 할 수 있다는 것을 알아 냈다. 이것은 현재 Firefox / Chrome 및 IE에서 작동합니다 (또한 IE는 짧은 확인 대화 상자를 표시합니다).

jQuery를 사용하여 다음을 얻었습니다.

var initMailtoButton = function()
{
    var iframe = $('<iframe id="mailtoFrame" src="mailto:name@domain.com" width="1" height="1" border="0" frameborder="0"></iframe>');
    var button = $('#mailtoMessageSend');    
    if (button.length > 0) {            
        button.click(function(){
            // create the iframe
            $('body').append(iframe);
            //remove the iframe, we don't need it any more
            window.setTimeout(function(){
                iframe.remove();    
            }, 500);

        });
    }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.