代码之家  ›  专栏  ›  技术社区  ›  SillyMonkey

mailto:链接和网络邮件

  •  13
  • SillyMonkey  · 技术社区  · 15 年前

    有没有一种方法可以实现与webmail客户端一起工作的mailto:link?

    编辑-所以传统的mailto链接(正如我所怀疑的)不起作用。那个么,有并没有人看到过类似于你们在网上看到的各种最受欢迎的站点的rss按钮?

    10 回复  |  直到 15 年前
        1
  •  19
  •   brien    15 年前

    链接由用户的浏览器处理。GMail有一个客户端安装(GMail通知程序),允许您指定希望GMail处理所有邮件链接。

    但是网页没有办法指定它的mailto链接应该由webmail应用程序处理(即使它可以,你怎么知道是哪一个?)。

        2
  •  5
  •   Andru    15 年前

    这实际上更多的是一个web客户端问题,Firefox已经提供了:

    http://starkravingfinkle.org/blog/2008/04/firefox-3-web-protocol-handlers/

    但最终还是由用户决定他们的浏览器如何处理邮件链接。

        3
  •  5
  •   MikeB    12 年前

    创建一个名为MailtoWebMail.reg的文本文件,包含以下内容。。。

    Windows注册表编辑器5.00版

    [HKEY\U LOCAL\U MACHINE\SOFTWARE\Classes\mailto\shell\open\command]

    @=“\”(浏览器可执行文件)\“(参数)”

    其中(BrowserExecutable)替换为浏览器的完整路径(即C:\Program Files\Internet Explorer\iexplore.exe)

    GMail "http://mail.google.com/mail/?view=cm&fs=1&至=%1“

    Hotmail "http://hotmail.msn.com/cgi-bin/compose?To=%1&mailto=1“

    雅虎邮件 "http://compose.mail.yahoo.com/?To=%1"

    网景邮件 "http://webmail.netscape.com/compose.adp?mailto=%1"

    Mail.com "http://mail01.mail.com/scripts/mail/Outblaze.mail?composeto=%1&组合=1“

    Opera网络邮件 "http://mymail.operamail.com/scripts/mail/Outblaze.mail?compose=1&did=1&a=1&to=%1”

    注:在[HKEY_LOCAL_MACHINE]行之后不应有空行

        4
  •  2
  •   Sinan Ünür    15 年前

    我只是在这里集思广益。您可以将Javascript处理程序附加到询问用户是否要登录到webmail帐户的链接(以及提供程序列表)。如果您拥有Web邮件提供程序的正确URL,则可以根据用户的选择调用它们。如果用户回答“否”,则从处理程序返回true,并且该链接可能会正常工作。

    比如说,, http://toric.blogspot.com/2005/07/gmail-compose-link.html http://blog.monstuff.com/archives/000238.html

        5
  •  1
  •   Shadow2531    15 年前

    下面是两个Opera UserJS示例,您可以查看这些示例,并了解如何在常规页面上执行这些操作。(显然,特定于UserJS的函数在常规页面中不起作用,但可以使用常规事件。)

    例如,这一个可以捕获mailto链接的左键点击,并在Gmail中打开它们。它还可以处理表单。

    http://shadow2531.com/opera/userjs/BeforeMailtoURL.js

    这一个捕获所有mailto操作,具有更通用的解析器(支持任何hname,而不仅仅是to、cc、bcc、subject和body),并具有更好的格式字符串语法:

    http://shadow2531.com/opera/userjs/BeforeMailtoURL.zip

    基本上,您必须找到一种拦截邮件链接操作的方法。您可以通过单击链接上的事件侦听器和表单上的提交侦听器(如果您真的想支持表单)来实现这一点。(在整个窗口上使用click事件侦听器并对其进行筛选以查找mailto操作更容易。这样,您可以捕获在任意时间动态添加的mailto链接。)

    或者,您可以只运行页面并处理所有mailto链接。

    但是,如果您想通过window.open或document.location等截获地址字段中的mailto操作,则需要HTML5的registerProtocolHandler或Opera的webmailprovider.ini支持。您可以在Firefox中使用registerProtocolHandler,但默认情况下,它仅限于您设置它的域。

    因此,基本上,您可以预先将mailto链接转换为http(s)webmail compose uri,或者在调用mailto操作时进行转换。后者效果更好。

    对于解析,您可以快速地执行脏正则表达式,但是使用完整的mailto-URI解析器和规范化函数可以获得更好的结果。

    所以,如果你只想处理左键点击链接,你可以跨浏览器。除此之外,您还必须使用特定浏览器提供的任何挂钩。

        6
  •  0
  •   Alistair Knock    15 年前

        7
  •  0
  •   Ben Lesh    15 年前

    如果您使用的是Google Apps电子邮件帐户(托管电子邮件),Gmail通知程序将无法工作。不过,您可以使用bookmarklet将所有mailto:links更改为指向您的网络邮件的链接。

    这是我写的一个书签,它将以红色突出显示所有固定链接。

    javascript:for(var i=0;i<document.links.length;i++){var a=document.links[i];if(a.href.indexOf('mailto:')==0){a.href='http://mail.google.com/a/sample.com/mail?extsrc=mailto&url='+a.href;a.style.backgroundColor='red';a.style.color='white'}};return true;
    

    一定要换衣服 http://mail.google.com/a/sample.com

    我想,如果你只是改变一下链接,其他一些电子邮件客户端也会这样做。

        8
  •  0
  •   phb    13 年前

    这是一条老线索,但还没有人完全回答它,所以这里开始。

    正如blesh在上文中所说,虽然没有办法获得“mailto:”去Gmail,但有另一种方法可以剥下这只猫的皮,这种方法在很多情况下都很有效。只需更改URL即可。删除“mailto:”前缀并插入https://mail.google.com/mail/?view=cm&fs=1&tf=1&to=“。

    无论用户是否通过谷歌应用程序进入,这似乎是一种魅力。如果用户未登录,他将被引导完成该步骤,然后Gmail仍会发出一条新消息。我注意到的唯一缺点是,如果(何时?)谷歌决定改变他们的书签方案,这可能需要一些调整。

        9
  •  0
  •   MikeB    12 年前

    哦,然后双击MailtoWebMail.reg将命令插入注册表。

        10
  •  0
  •   shacker kravietz    8 年前

    有人看到了吗 数字 表示有多少百分比的webmail用户已使用插件等配置了他们的系统,以便正确使用 mailto: 发送到浏览器/网络邮件系统而不是桌面应用程序的链接?这似乎是决定是否使用的关键 邮寄地址: 网站上的链接或联系方式,但我很难找到指导决策的数字。