如何隐藏网站上的电子邮件地址以防止垃圾邮件?

时间:2013-08-25 13:42:18

标签: html email spam-prevention

我知道这有点宽泛,但问题是如何从垃圾邮件机器人中隐藏我的电子邮件?

每种方法的优缺点是什么?

1 个答案:

答案 0 :(得分:13)

模糊JavaScript

方法

我经常看到这个。

My email is <strong id="secret1"></strong>
var parts = ["secret", "my", 64, "il.com", "gma"];
document.getElementById("secret1").textContent = parts[1] + parts[0] + String.fromCharCode(parts[2]) + parts[4] + parts[3];

fiddle

赞成

这比纯文字更好, @ 字符不会出现在您网页的任何位置。

缺点

现在有无头浏览器可以运行JavaScript并查看动态页面,而不是html源代码。


:: before和:: after

方法

在CSS中使用伪选择器,我们可以在元素后面显示内容。它从未添加到DOM中,因此它纯粹是视觉效果。

My email is <strong id="secret2">mysecret</strong>
#secret2::after {
    content: '@gmail.com';
}

fiddle

赞成

如果您记得使用::after代替:after,则可以阻止IE&lt; 9用户向您发送电子邮件。

缺点

用户无法选择伪元素的内容。在上面的例子中,他们必须在给你发电子邮件时输入“@ gmail.com”。


联系表格

方法

提供联系表单,并使用服务器端脚本向您发送电子邮件。

<h1>Contact Us</h1>

<form action="contact.php" method="POST">
    <label for="subject">Subject</label>
    <input type="text" name="subject">
    <label for="email">Email</label>
    <input type="email" name="email">
    <label for="body">Message</label>
    <textarea name="body" cols="30" rows="10"></textarea>
    <input type="submit">
</form>

fiddle

赞成

  • 您永远不会显示您的电子邮件地址,除非您决定回复
  • 您可以对表单进行评分,并提供验证码
  • 您可以记录IP地址,并阻止任何向您发送垃圾邮件
  • 您可以为用户提供有用的选项(例如多项选择“这是什么”)
  • 可以使用验证码
  • 您可以将消息与用户帐户绑定,并在网站上提供更新以及之前对话的存档
  • 可以记录浏览器信息(例如用户代理)以获得更快的技术支持

缺点

  • 感觉没有人情味
  • 需要服务器端语言
  • 需要更多时间来实施