【问题标题】:Using Chrome's "Copy email address" on mailto link returns encoded useless text instead of a correct email address在 mailto 链接上使用 Chrome 的“复制电子邮件地址”会返回编码的无用文本,而不是正确的电子邮件地址
【发布时间】:2018-02-20 15:03:17
【问题描述】:

我们有一个使用 PHP 编码的网站,访问受限(仅限独家会员)。

联系页面我们有一堆mailto链接,例如:

<a href="mailto:Name SURNAME <address@domain.com>">address@domain.com</a>

如果访问者点击其中一个链接,它会执行通常的操作(在 Thunderbird 中打开一封新电子邮件,其中收件人:字段已正确填写)。

问题在于,当访问者右键单击其中一个链接,选择“复制电子邮件地址”,然后将其粘贴到“收件人:”字段或任何位置(即使在文档中),在这种情况下,结果将是:

姓名%20SURNAME%20%3Caddress@domain.com%3E

而不是

姓氏

我已经寻找了几个小时的解决方案,并且已经尝试了rawurlencode(), urlencode() 和其他可能的技巧,但完全没有效果。

你们中的一些人能帮帮我吗?

这是生成链接的 PHP 代码:

<?php  echo '<a href="mailto:'.$name.' <'.$email.'>'.'">'.$email.'</a>'; ?>
//where $email is a valid email address
//and $name is plain text (usually two words with a space character between)

【问题讨论】:

  • 也许首先提供生成此链接的代码?
  • 我编辑了它 - 代码现在可见。
  • 不不,生成链接的 PHP 代码在哪里?
  • 对不起...再次编辑。我刚开始在 Stackoverflow 上提问...
  • @JonStirling - 如您所见,我没有在 mailto 链接上使用任何编码... :(

标签: php google-chrome mailto


【解决方案1】:

我相信您正在尝试做一些根本无法做到的事情。 我理解这个想法,但是......这不是一件事。

我没有发现任何文档说您可以在 中输入姓名并附上电子邮件地址。

  1. https://developer.mozilla.org/.../a#Creating_an_email_link
  2. https://developer.mozilla.org/.../Creating_hyperlinks#E-mail_links
  3. IETF RFC6068

你当然可以这样做:

<a href="mailto:address@domain.com">address@domain.com</a>

【讨论】:

  • 感谢您的意见!几个月前它工作得很好,如果用户没有复制电子邮件地址,它仍然可以工作......还有其他方法可以在 mailto 链接中包含名称吗?
  • 据我所知,它不是整个 HTML 中受支持的功能。
【解决方案2】:

我发现了这个:https://stackoverflow.com/a/25854290/3376036

它似乎实际上不受支持,但它通常可以工作

【讨论】:

  • 什么是“通常”?仅仅链接一个 7 年前的帖子可能并不是一个建设性的答案。
  • 就我而言,选词不当,我想说标准说这是不可能的,但许多浏览器实现(或在这种情况下实现)这个功能因为这个规范仍然是真实的,我认为它是仍然与问题相关,但我想我错了
猜你喜欢
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-03
  • 2018-11-21
相关资源
最近更新 更多