在网页上放置电子邮件地址时,请将它们放置为如下文本:
joe.somebody@company.com
或使用一个聪明的伎俩试图欺骗电子邮件地址收割机机器人?例如:
HTML转义字符:
joe.somebody@company.com
Javascript Decrypter:
function XOR_Crypt(EmailAddress) { Result = new String(); for (var i = 0; i < EmailAddress.length; i++) { Result += String.fromCharCode(EmailAddress.charCodeAt(i) ^ 128); } document.write(Result); } XOR_Crypt("êïå®óïíåâïäùÀãïíðáîù®ãïí");
人体解码:
joe.somebodyNOSPAM@company.com joe.somebody AT company.com
你用什么或者你甚至打扰?
我一般不打扰.我曾经在一个邮件列表上,每天都有数千个垃圾邮件.我们的垃圾邮件过滤器(spamassassin)每天可能需要1或2个.过滤器这个好,为什么合法的人很难联系到你?
发明你自己疯狂的电子邮件地址混淆计划.无论它是什么,真的,只要它与任何众所周知的方法都不太相似.
问题在于,确实没有一个好的解决方案,它们要么相对简单地绕过,要么对用户感到恼火.如果任何一种方法变得普遍,那么有人会找到解决方法.
因此,不是寻找One True电子邮件地址混淆技术,而是提出自己的想法.依靠这些机器人作者对你的网站不够关心这个事实来围绕你写一个东西来绕过你稍微疯狂的渲染 - 文本与css和元素边界或你完全奇怪,容易破解的javascript加密这一事实.如果它是微不足道的并不重要,没有人会费心试图绕过它只是为了让他们可以发送垃圾邮件.
我编写了一个编码器(源代码),它使用了我能想到的各种解析技巧(不同种类的HTML实体,URL编码,注释,多行属性,软连字符,非明显的mailto:URL结构等)
它不会阻止所有收割机,但OTOH完全符合标准且对用户透明.
另一个恕我直言的好方法(你可以使用除了棘手的编码)沿着以下几点:
您可以使用reCAPTCHA保护您的电子邮件地址,他们提供免费服务,因此用户必须输入CAPTCHA(完全自动公共图灵测试以告知计算机和人类)以查看您的电子邮件:https://www.google.com/recaptcha /管理#mailhide
我不打扰 - 这是在错误的水平上打击SPAM战争.特别是对于公司网站,我认为如果除了带有mailto超链接的页面上的直接文本之外还有其他内容,它会使事情看起来非常不专业.
有太多的垃圾邮件飞来飞去,无论如何你需要很好的过滤,任何机器人最终都会理解所有常见的技巧.
HTML:
JavaScript,使用jQuery:
// match all a-elements with "--mailto--" somehere in the class property $("a[class*='--mailto--']").each(function () { /* for each of those elements use a regular expression to pull out the data you need to construct a valid e-mail adress */ var validEmailAdress = this.className.match(); $(this).click(function () { window.location = validEmailAdress; }); });