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

Bri*_*and 3 html email spam-prevention

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

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

Bri*_*and 13

模糊的JavaScript

方法

我经常看到这个.

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

小提琴

优点

它比纯文本更好,@字符不会出现在页面的任何位置.

缺点

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


::之前和之后

方法

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

My email is <strong id="secret2">mysecret</strong>
Run Code Online (Sandbox Code Playgroud)
#secret2::after {
    content: '@gmail.com';
}
Run Code Online (Sandbox Code Playgroud)

小提琴

优点

如果您记得使用::after而不是:after,则可以阻止IE <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>
Run Code Online (Sandbox Code Playgroud)

小提琴

优点

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

缺点

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

  • "如果你记得使用::之后而不是:之后,你可以阻止IE <9用户向你发送电子邮件." LoL好一个! (3认同)