隐藏Mailto:链接

时间:2010-12-31 17:09:45

标签: php html mailto

我的网站上有不同的mailto:电子邮件地址,现在被各种收割机击中,随后我被垃圾邮件发送。

任何人都可以帮助我为以下内容创建一些PHP代码:

<a href="mailto:info@company.com">info@company.com</a>

为防止收集地址,我可以在网站上显示的各种电子邮件地址上使用此脚本吗?

由于

9 个答案:

答案 0 :(得分:3)

其他人建议使用JavaScript document.write()编写电子邮件地址。我不喜欢这种方法,因为它很容易被实际渲染页面的机器人击败。我通过这种方式收到了“受保护”的电子邮件地址的垃圾邮件(没有那么多,也没有未受保护的地址那么快,但它仍然存在)。

我首选的方法是使用虚拟电子邮件地址(可以转到邮件服务器上的蜜罐电子邮件地址)来编写链接,这样您就可以确定要将哪些服务器IP地址列入黑名单。然后在链接上使用onClick处理程序在用户单击时替换真实的电子邮件地址。没有电子邮件收集器会向页面上的每个链接发送一个点击事件,它就行不通。

<a href="mailto:fake@example.com" 
   onClick="this.href=this.href.replace('fake', 'real')">
Send Us E-mail</a>

在此示例中,我们从“fake@example.com”开始,并在用户点击链接时将“fake”替换为“real”。

我喜欢的另一个想法是让用户将他们的电子邮件地址输入表单。然后使用脚本向他们发送电子邮件。他们回复该电子邮件地址以便与您联系。换句话说,他们没有收到您的电子邮件地址,直到他们给您一个有效的地址,并且您的地址永远不会在网站上。

答案 1 :(得分:2)

我发现的最佳解决方案是使用一些javascript。你调用一个函数,传入地址,它会打印出你的链接。由于大多数机器人不处理javascript,这应该适用于大多数情况:

<script type='text/javascript'>
    function email(name, domain, withlink) {
        var addr = name + '@' + domain;
        if(withlink) {
            document.write('<a href="mailto:' + addr + '">' + addr + '</a>');
        } else {
            document.write(addr);
        }
    }
</script>

然后,当您想在网站上打印电子邮件地址时:

<script>email('myuser', 'mydomain');</script>

如果您想让它成为可点击链接:

<script>email('myuser', 'mydomain', true);</script>

注意:这是未经测试的,但应该可以使用。还有更先进的技术,其他一些答案也会触及,但大多数技术都是基于这样的基础。

答案 2 :(得分:1)

我会用Javascript来做。尝试像

这样的东西
<script>
document.write('<a href="mailto:inblahfo@company.com">inblahfo@company.com</a>'
.replace(/blah/g, ''));
</script>

答案 3 :(得分:1)

我一直很喜欢 Hive Enkoder 来创建mailto链接:

http://hivelogic.com/enkoder/

答案 4 :(得分:1)

我会这样做:

function obfuscate_email($email) {
    $obf = '';
    for($i = 0; $i < strlen($email); $i++) {
        $obf .= '&#' . ord($email[$i]) . ';';
    }
    return $obf;
}

echo '<a href="mailto:' . obfuscate_email('info@company.com') . '">' . obfuscate_email('info@company.com') . '</a>';

HTML源代码:

<a href="mailto:&#105;&#110;&#102;&#111;&#64;&#99;&#111;&#109;&#112;&#97;&#110;&#121;&#46;&#99;&#111;&#109;">&#105;&#110;&#102;&#111;&#64;&#99;&#111;&#109;&#112;&#97;&#110;&#121;&#46;&#99;&#111;&#109;</a>

用户看到了什么:

  

info@company.com

答案 5 :(得分:0)

最简单的解决方案是为您的公司电子邮件地址创建一个图像:)

或者

您可以使用此在线工具:

<script type="text/javascript">
  var part1 = "me";
  var part2 = "mydomain.com";
  var part3 = "Click Here to Send";
  document.write('<a href="mai' + 'lto:' + part1 + '@' + part2 + '">');
  document.write(part3 + '</a>');
</script>

或者

查看更多方法:

答案 6 :(得分:0)

您可以动态生成JavaScript中的mailto链接,如下所示:http://www.webmarksonline.com/content/dynamicemaillink.htm

答案 7 :(得分:0)

我建议recaptca。它使得在显示您的电子邮件之前使用键入两个图像中的单词。这是完全安全的,它也有助于数字化书籍。该网站提供了一个很棒的API(复制粘贴代码),用于在您的网站上实现它

更新 - heres a direct link to mailhide

答案 8 :(得分:0)

您可以使用免费的外部服务,例如aemail.com

   @email是一个免费的电子邮件隐藏服务,可以使用短片隐藏电子邮件   点击链接后,网址会将发件人重定向到mailto-url。

在aemail.com输入电子邮件后,您将获得一个简短的URL,可用于替换您的“mailto”链接。点击链接后,您的用户将被重定向到“mailto”网址,而不会通知aemail.com。 API可用于动态隐藏电子邮件/获取网址。

示例:

<a href="mailto:info@itee.com">Contact</a>

替换为

<a href="https://aemail.com/q2">Contact</a>

将保持电子邮件链接正常工作。