检测何时邮件发送失败

detecting when mailto failed

本文关键字:失败 何时邮 检测      更新时间:2023-09-26

当使用mailto链接时,如果用户没有电子邮件客户端设置,或者没有将他的webmail设置为他的默认客户端(ea. gmail作为macosx的默认客户端),那么它就不会为用户做任何事情。最好的方式是优雅地提供退路,友好地让用户手动给你发邮件?我可以使用JS或css显示消息一旦链接已被点击:

提交成功,如果没有任何问题,请手动发邮件给我们。

如何使用mailto表单,我可以使用重定向页面成功没有或与服务器端脚本?是否有办法从失败中过滤出成功,而不是依赖于用户的判断与上面的双重成功/失败信息?

edit:当一个mailto链接(或表单)被点击时,改变状态的最合适的方式是什么?显然,JavaScript或css是选项,但我不能简单地创建双操作链接或表单提交;邮件到,也链接到另一个页面(您已经提交/点击按钮')

本文讨论了一种检查单击mailto后window的模糊事件是否触发的方法。它使用了一个超时,所以它不是万无一失的,但可以解决大多数情况。下面是一个JavaScript/jQuery示例,经过本文的简化。

(function($)) {
  $('a[href^=mailto]').each(function() {
    $(this).click(function() {
      var t;
      $(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);

您无法检测用户是否有电子邮件客户端设置。因此,我建议您设置一个服务器端表单,以便用户与您联系。

在此下方或上方,您可以为用户提供一个链接,说明如果他想通过他的主电子邮件帐户直接与您联系,他可以点击此链接(此链接是mailto:链接)。

通过提供给他两种联系你的方式(网络表单或电子邮件客户端),你给了用户选择他想要使用哪一种的机会。因此,是否安装了电子邮件客户端以及是否要使用它取决于他自己。

使用JavaScript确认弹出窗口询问用户是否在计算机上设置了电子邮件