在 mailto link returns 上使用 Chrome 的 "Copy email address" 编码的无用文本而不是正确的电子邮件地址

Using Chrome's "Copy email address" on mailto link returns encoded useless text instead of a correct email address

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

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

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

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

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

Name%20SURNAME%20%3Caddress@domain.com%3E

而不是

Name SURNAME <address@domain.com>

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

你们中的一些人可以帮助我吗?

这是生成 link 的 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)

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

我发现没有文档说您可以在 <> 中输入姓名并将电子邮件地址括起来。

  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>

我找到了这个:。

似乎实际上不受支持,但通常可以使用