3

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

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

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

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

谢谢

4

9 回答 9

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”。

我喜欢的另一个想法是让用户在表单中输入他们的电子邮件地址。然后,您使用脚本向他们发送电子邮件。他们回复该电子邮件地址以开始与您联系。换句话说,在他们给你一个他们自己的有效电子邮件地址之前,他们不会得到你的电子邮件地址,而且你的地址永远不会出现在网站上。

于 2010-12-31T17:42:49.983 回答
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>

注意:这是未经测试的,但它应该可以工作。还有更先进的技术,其他一些答案涉及这些技术,但其中大多数都是建立在这样的基础之上的。

于 2010-12-31T17:20:24.207 回答
1

我会用Javascript来做。尝试类似的东西

<script>
document.write('<a href="mailto:inblahfo@company.com">inblahfo@company.com</a>'
.replace(/blah/g, ''));
</script>
于 2010-12-31T17:13:39.127 回答
1

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

http://hivelogic.com/enkoder/

于 2010-12-31T17:19:09.520 回答
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

于 2010-12-31T17:48:22.923 回答
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>

或者

查看更多方法:

于 2010-12-31T17:12:04.823 回答
0

您可以像这样在 JavaScript 中动态生成 mailto 链接:http ://www.webmarksonline.com/content/dynamicemaillink.htm

于 2010-12-31T17:15:00.763 回答
0

我推荐recaptca。它使用户在显示您的电子邮件之前在两张图像中键入单词。它是完全安全的,它还有助于将书籍数字化。该网站提供了一个很棒的 AP​​I(复制粘贴代码)用于在您的网站上实现它

更新 -这里是 mailhide 的直接链接

于 2010-12-31T17:21:23.370 回答
0

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

@email 是一项免费的电子邮件隐藏服务,它使用短 URL 隐藏电子邮件,在单击链接后将发件人重定向到 mailto-url。

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

例子:

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

替换为

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

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

于 2017-05-22T08:11:53.910 回答