【问题标题】:What does `mailto:` do when there is no email client?没有邮件客户端时,`mailto:` 做什么?
【发布时间】:2015-01-26 09:58:58
【问题描述】:

我正在开发一个网站。

如果没有电子邮件客户端(如 Outlook、Thunderbird 等),mailto: 会打开什么? 它可以在我的电脑上运行,它有 Outlook,但是如果有人想要 mailto: 在 gmail.com 中打开呢?

我需要在mailto: 语句中输入什么内容才能做到这一点?

【问题讨论】:

  • 据我所知,mailto 仅在来宾操作系统上打开这些客户端。如果没有,它就不起作用。有一些(chrome)插件可以使 gmail 成为您的“默认邮件客户端”。我通过在我的网站上创建一个 (php) 并以这种方式发送来解决这个问题。
  • 我认为这行不通。我建议使用 Ajax 来代替表单。

标签: javascript html email mailto


【解决方案1】:

作为网络开发人员,您无法控制用户选择打开其电子邮件的软件,因为它是由该用户的网络浏览器设置或操作系统处理的。如果用户没有在他们的机器上安装电子邮件程序并且没有在他们的浏览器中为“mailto”链接定义任何操作,那么什么都不会发生。

【讨论】:

    【解决方案2】:

    以下解决方案适用于我:

    (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

    【讨论】:

      【解决方案3】:

      我相信你可以使用它。 https://mail.google.com/mail/?view=cm&fs=1&to=email@domain.com 然而,这确实有其缺陷,即用户必须已经登录到 gmail。希望这会有所帮助!

      【讨论】:

      • 假设用户登录(或什至使用)gmail 帐户,我想说,这比假设他们设置了自己的邮件客户端更糟糕。
      【解决方案4】:

      发生什么完全取决于客户。操作系统为mailto:tel: 等协议定义了协议处理程序。

      您需要访问客户端的注册表(在 Windows 系统的情况下)来操作您的协议处理程序的处理应用程序。

      对于指定处理程序的 Outlook 2013,相应的 Registry 结构如下所示:

      [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下有相应的结构。

      【讨论】:

        【解决方案5】:

        mailto URI 方案不会决定发生什么——它只是指示您使用的浏览器执行其配置的任何操作来发送电子邮件(请参阅the IETF proposed standard for more info)。因此,如果没有配置电子邮件客户端,您必须咨询浏览器本身以了解它的作用。

        根据文档和我的个人经验,我看不到任何手动设置操作的方法:对于某些具有一些非标准语法的浏览器来说,这可能是可能的,但这不太可能,因为这会打开一个可以通过单击执行任意命令(例如下载病毒或类似的东西),存在巨大的潜在安全问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-12-07
          • 2015-10-28
          • 2010-11-21
          • 1970-01-01
          • 2022-11-05
          • 2011-09-26
          • 1970-01-01
          • 2017-07-17
          相关资源
          最近更新 更多