【问题标题】:Issue with mailto link in email address containing ampersand?包含&符号的电子邮件地址中的mailto链接问题?
【发布时间】:2012-03-18 21:15:55
【问题描述】:

我有一个类似 <a href="mailto:a&b_admin@xyz.com" > 的mailto 链接,它可以在html 上正确显示,但是当我们单击该链接时,Outlook 只会在收件人地址中显示一个。有没有人遇到过同样的问题,请指教。

【问题讨论】:

  • 与号不是电子邮件地址中的有效字符,是吗? (编辑:哦,确实,it is.)我猜百分比编码是你的朋友
  • mailto 已经很老了。您网站 90% 的访问者不使用他们的系统邮件,而是使用 gmail 邮件服务。联系表格的链接非常方便用户使用

标签: html mailto


【解决方案1】:

Percent encoding IE 需要该字符串,我认为它可以跨浏览器工作。从 this MSDN document:

Windows Internet Explorer 7 及更高版本。您必须对 mailto: 地址中的所有 URL 保留字符进行百分比编码。例如,数字符号 (#) 用作 URL 中的片段标识符。在处理诸如 some#one@example.com 之类的地址时,Internet Explorer 仅将直到数字符号的部分复制到邮件客户端;包括数字符号的片段部分被忽略。此行为是设计使然。

所以你需要

 <a href="mailto:a%26b_admin%40xyz.com">

如前所述,我希望百分比编码的地址适用于所有浏览器,但我不确定。我可以确认它适用于 Chrome 和 Thunderbird。

【讨论】:

  • 这行 JavaScript 将转换 & 符号,因此您不必手动操作:var emailFriendlyUrl = currentUrl.replace(/&amp;/g, '%26');
  • 我的情况(在 Chrome 中创建和打开 mailto 链接的书签)我不仅要编码 & 符号,还要编码它前面的百分号,这是我刚刚从 @987654323 学到的@ 带我去.replace('&amp;', '%2526')
  • 弗洛里安的评论解决了一个我纠结了很久的问题。 '%2526' 有效,而 '%26' 从来没有。
  • @birchy 请注意,%2526 是双重编码的&amp;。编码(“&”)=“%26”,编码(“%26”)=“%2526”。所以你可能会解码两次而不是一次。
猜你喜欢
  • 2017-10-29
  • 2014-12-16
  • 2020-10-08
  • 2013-08-03
  • 1970-01-01
  • 1970-01-01
  • 2013-11-25
  • 1970-01-01
相关资源
最近更新 更多