我正在开发一个网站。
如果没有电子邮件客户端(如Outlook,Thunderbird等),mailto:
会打开什么?
它可以在我的计算机上运行,它有Outlook,但如果有人想要mailto:
打开,比如说gmail.com,该怎么办?
我需要在mailto:
声明中加入哪些内容才能实现?
答案 0 :(得分:11)
作为Web开发人员,您无法控制用户选择打开其电子邮件的软件,因为它由该用户的Web浏览器设置或操作系统处理。如果用户的计算机上没有安装电子邮件程序,并且浏览器中没有为“mailto”链接定义操作,则不会发生任何事情。
答案 1 :(得分:5)
以下解决方案适合我:
(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);
有关详细信息,请参阅:https://www.uncinc.nl/articles/dealing-with-mailto-links-if-no-mail-client-is-available
答案 2 :(得分:1)
我相信你可以用它。 https://mail.google.com/mail/?view=cm&fs=1&to=email@domain.com 但是,它确实存在缺陷,用户必须已经登录到gmail。希望这有帮助!
答案 3 :(得分:0)
完全取决于客户。操作系统为mailto:
或tel:
等协议定义协议处理程序。
您需要访问客户端的注册表(如果是Windows系统)来操作协议处理程序的处理应用程序。
对于Outlook 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下有相应的结构。
答案 4 :(得分:0)
mailto
URI方案并未决定发生了什么 - 它只是指示您使用的浏览器执行其配置为发送电子邮件的任何内容(见the IETF proposed standard for more info)。因此,如果没有配置电子邮件客户端,您必须咨询浏览器本身以查看它的作用。
根据文档和我的个人经验,我没有看到任何手动设置操作的方法:某些浏览器可能有一些非标准语法,但这不太可能,因为这会打开能够通过点击执行任意命令(例如下载病毒或类似的东西)来解决巨大的潜在安全问题。