2014-11-27 5 views
6

나는 웹 사이트를 개발 중이다.전자 메일 클라이언트가 없을 때`mailto :`는 무엇을합니까?

이메일 클라이언트가없는 경우 (예 : Outlook, Thunderbird 등) mailto:은 무엇입니까? Outlook이있는 내 컴퓨터에서 작동하지만, 마치 mailto:, 즉 gmail.com을 열려면 어떻게해야합니까?

mailto: 명세서를 작성하려면 무엇이 필요합니까?

+0

는 지금까지 내가 흔한 알고있는 유일한 게스트 OS에 해당 클라이언트를 엽니 다 https://www.uncinc.nl/articles/dealing-with-mailto-links-if-no-mail-client-is-available. 아무 것도 없으면 작동하지 않습니다. gmail을 "기본 메일 클라이언트"로 만드는 몇 가지 (크롬) 플러그인이 있습니다. 내 사이트에서 (PHP)를 작성하여 그렇게 전송함으로써 문제를 해결할 수 있습니다. – Triplus

+0

나는 그것이 효과가 있다고 생각하지 않는다. 대신 Ajax를 사용하여 양식을 작성하는 것이 좋습니다. – www139

답변

9

웹 개발자는 사용자가 웹 브라우저 설정 또는 운영 체제에서 처리하므로 사용자가 전자 메일을 열도록 선택한 소프트웨어를 제어 할 수 없습니다. 사용자가 컴퓨터에 전자 메일 프로그램이 설치되어 있지 않고 브라우저의 "mailto"링크에 대해 정의 된 작업이 없으면 아무 일도 일어나지 않습니다.

0

전적으로 클라이언트에게 달려 있습니다. OS는 mailto: 또는 tel:과 같은 프로토콜에 대한 프로토콜 처리기를 정의합니다.

프로토콜 처리기의 처리 응용 프로그램을 조작하려면 클라이언트의 레지스트리 (Windows 시스템의 경우)에 액세스해야합니다.

는 지정된 핸들러로 아웃룩 2013은 레지스트리 따른 구조는 다음과 같다 :

[HKEY_CLASSES_ROOT\mailto] 
@="URL:mailto" 
"EditFlags"=hex:02,00,00,00 
"URL Protocol"="" 

[HKEY_CLASSES_ROOT\mailto\DefaultIcon] 
@="C:\\PROGRA~2\\MICROS~1\\Office15\\OUTLOOK.EXE,-9403" 

[HKEY_CLASSES_ROOT\mailto\shell] 
@="open" 

[HKEY_CLASSES_ROOT\mailto\shell\open] 

[HKEY_CLASSES_ROOT\mailto\shell\open\command] 
@="\"C:\\PROGRA~2\\MICROS~1\\Office15\\OUTLOOK.EXE\" -c IPM.Note /mailto \"%1\"" 

을 HKCU 하에서 대응 구조.

1

나는 이것을 사용할 수 있다고 생각합니다. https://mail.google.com/mail/?view=cm&fs=1&[email protected] 그러나 이것은 사용자가 이미 gmail에 로그인해야하는 결함이 있습니다. 희망이 도움이!

+1

이 링크는 질문에 대답 할 수 있지만 답변의 핵심 부분을 여기에 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. – AdamMc331

+0

명심하십시오. 고맙습니다. –

+0

gmail 계정에 사용자가 로그인 (또는 심지어 a를 사용)한다고 가정하면, 자신의 메일 클라이언트를 설정했다고 가정하는 것보다 나빠질 것입니다. – Matt

0

mailto URI 체계는 어떤 일이 발생할지 결정하지 않고 단순히 전자 메일을 보내도록 구성된 브라우저를 사용하는 브라우저에 지시합니다 (the IETF proposed standard for more info 참조). 따라서 전자 메일 클라이언트가 구성되어 있지 않으면 브라우저 자체를 참조하여 전자 메일 클라이언트의 기능을 확인해야합니다.

문서 및 개인적인 경험에 따르면 수동으로 작업을 설정하는 방법이 없습니다. 일부 표준이 아닌 구문을 사용하는 특정 브라우저에서는 가능할 수 있지만 이것이 가능하지는 않습니다. (바이러스 등을 다운로드하는 것과 같이) 클릭으로 임의의 명령을 실행할 수 있으므로 잠재적 인 보안 문제가 발생할 수 있습니다.

1

다음 솔루션은 나를 위해 작동 :

(function($)) { 
    $('a[href^=mailto]').each(function() { 
    var href = $(this).attr('href'); 
    $(this).click(function() { 
     var t; 
     var self = $(this); 

     $(window).blur(function() { 
     // The browser apparently responded, so stop the timeout. 
     clearTimeout(t); 
     }); 

     t = setTimeout(function() { 
     // The browser did not respond after 500ms, so open an alternative URL. 
     document.location.href = '...'; 
     }, 500); 
    }); 
    }); 
})(jQuery); 

는 더 많은 정보를 참조 :