【问题标题】:How can I obscure email addresses on websites to prevent spam? [duplicate]如何隐藏网站上的电子邮件地址以防止垃圾邮件? [复制]
【发布时间】:2013-08-28 02:02:22
【问题描述】:

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

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

【问题讨论】:

标签: html email spam-prevention


【解决方案1】:

晦涩的 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

缺点

用户不能选择伪元素的内容。在上面的示例中,他们在给您发送电子邮件时必须输入“@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 地址,并阻止任何向您发送垃圾邮件的内容
  • 您可以为用户提供有用的选项(例如多选“这是关于什么的”)
  • 可以使用验证码
  • 您可以将消息绑定到用户帐户,并在网站上提供更新以及以前对话的存档
  • 可以记录浏览器信息(例如用户代理)以获得更快的技术支持

缺点

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

【讨论】:

  • "如果您记得使用 ::after 而不是 :after,您可以阻止 IE
猜你喜欢
  • 2010-11-20
  • 2014-05-25
  • 2018-12-18
  • 2013-08-23
  • 2017-05-17
  • 1970-01-01
  • 1970-01-01
  • 2012-08-26
  • 2011-11-13
相关资源
最近更新 更多