我发现“ mailto:”链接的那一天很光荣。我可以在网页上发布我的地址,任何人都可以单击给我发电子邮件。这是在网络的更无辜的日子里 - 垃圾邮件收割机接管。今天使用“ mailto:”,您的第一个伟哥消息将在30秒后出现。那么,如何在不吸引垃圾邮件发送者不必要的关注的情况下发布电子邮件地址?
最明显的解决方案是在HTML中使用机器可读电子邮件,例如。 “鲍勃(AT)Bobsomain Dot Com”。尽管这使垃圾邮件发送者很难,但也使您的用户很难。

另一个选项是使用JavaScript生成电子邮件地址,也许使用一个小字符串串联或编码,例如。
<p>contact
<script type="text/javascript">
document.write('<a href="mai'+"lto"+"bob"+'@'+'bobsdomain.com">bob@'+"bobsdomain.com</a>");
</script>
</p>
登录后复制
这将阻止大多数垃圾邮件发送者,但是任何有JavaScript禁用的人都不会看到您的地址。 (我也不建议使用document.write。)
一个更好的解决方案是将技术组合用于阻止垃圾邮件发送者,而不会造成用户困难。第一步是在我们的HTML中使用人类可读但防收益的电子邮件地址。我们还将将其作为指向联系页面的链接,例如
<p>Contact <a href="contact.html" >bob (at) bobsdomain dot com</a></p>
登录后复制
请注意,我们包括了一类“电子邮件”,因此可以识别我们的链接。下一步是编写一个JavaScript函数,该功能搜索您的页面以获取混淆的电子邮件,并将其转换为真实的“ MailTo:”链接。我们将创建一个“ email.js”文件,并将其包含在我们的html中:
<script type="text/javascript" src="email.js"></script>
登录后复制
所需的代码很短,因此我们不需要JavaScript库:
电子邮件的内容:js:
function EmailUnobsfuscate() {
// find all links in HTML
var link = document.getElementsByTagName && document.getElementsByTagName("a");
var email, e;
// examine all links
for (e = 0; link && e < link.length; e++) {
// does the link have use a class named "email"
if ((" "+link[e].className+" ").indexOf(" email ") >= 0) {
// get the obfuscated email address
email = link[e].firstChild.nodeValue.toLowerCase() || "";
// transform into real email address
email = email.replace(/dot/ig, ".");
email = email.replace(/(at)/ig, "@");
email = email.replace(/s/g, "");
// is email valid?
if (/^[^@]+@[a-z0-9]+([_.-]{0,1}[a-z0-9]+)*([.]{1}[a-z0-9]+)+$/.test(email)) {
// change into a real mailto link
link[e].href = "mailto:" + email;
link[e].firstChild.nodeValue = email;
}
}
}
}
登录后复制
代码的解释:
- >第4行获取我们的html页面中的每个链接,并通过它们第8行循环。
>
- 第11行检查一类“电子邮件”的链接。
第14行从节点的文本内容中获取混淆的电子邮件。
第17至19行使用正则表达式将其转换为真实的电子邮件地址:“ dot”更改为“”。,“(at)”已更改为“@”,所有空格均已删除。- >
>第22行检查结果的电子邮件地址有效。-
第25行和第26行,然后修改DOM节点,然后将其变成真正的“ mailto:”链接。-
最后,我们需要通过在电子邮件底部添加一行来确保该函数在页面加载上运行。
-
结果:
我们的原始HTML页面没有“ mailto:”链接,垃圾邮件发送者无法轻易收获。
>
window.onload = EmailUnobsfuscate;
登录后复制
>大多数用户(启用JavaScript的用户)将看到标准的电子邮件地址和“ mailto:”链接。
- 任何未运行JavaScript
本文的这一目的是显示概念而不是真实的代码。尽管该示例有效,但我建议您:
-
>使用您自己的混淆电子邮件格式,例如“鲍勃{@}Bobsomain -dot -com”。垃圾邮件发送者可以像您一样轻松地阅读本文并转换编码的电子邮件!
使用不同的链接标识符类 - “电子邮件”有点明显!- >
>使用jQuery之类的JavaScript库将功能缩短。您还应确保它与围绕电子邮件地址文本周围的Whitespace或其他DOM节点进行了应对(未在上面的代码中处理)。- >
>用更健壮的事件处理程序替换窗口。-
祝您好运。
经常询问有关电子邮件混淆的问题
电子邮件混淆的主要目的是什么?它涉及以一种使自动化程序(称为机器人)难以识别或收集的方式来掩饰或编码电子邮件地址。但是,它仍然可以阅读,可用于人类访客。这项技术对于想要公开显示其电子邮件地址但想避免收到未经请求的电子邮件的网站所有者至关重要。>
>电子邮件obfustcation如何工作?
通过以一种难以破坏bots的方式来编码或掩盖电子邮件地址,来编码或掩盖电子邮件地址。这可以通过多种方式完成,例如使用字符实体,JavaScript或CSS技巧。例如,诸如“ info@example.com”之类的电子邮件地址可以被视为“ info(at)示例(dot)com”。尽管存在混淆,但电子邮件地址仍然有效,并且可以正常使用人类访客。>电子邮件obfuscation doomprace foolprace吗?,而电子邮件obfuscation可以显着减少您收到的垃圾邮件量,但并不是完全自在。复杂的机器人可能仍然能够破译混淆的电子邮件地址。但是,它确实增加了额外的保护层,并使垃圾邮件发送者更难收集您的电子邮件地址。电子邮件obfuscation会影响用户体验吗?>如果正确完成,电子邮件obfuscation不应对用户体验产生负面影响。混淆的电子邮件地址仍应适合人类访问者可读并且可用。但是,重要的是要确保使用的混淆方法不会干扰电子邮件地址的功能。可以将电子邮件obfustcation与任何电子邮件地址一起使用?这是一种独立于电子邮件提供商或电子邮件地址域的技术。它可以与个人,企业或机构电子邮件地址一起使用。>
是一次性的一次性过程吗?>电子邮件obfuscation不一定是一次性的过程。随着垃圾邮件发送者及其机器人变得越来越复杂,可能有必要更新或更改您的混淆方法以确保继续保护。>可以与其他垃圾邮件预防方法结合使用电子邮件混淆吗?这可以包括诸如CAPTCHA,垃圾邮件过滤器和使用联系表的技术,而不是公开显示电子邮件地址。
>电子邮件obfuscation是否会影响电子邮件的可交付性?
不,电子邮件obfustcation不影响电子邮件的交付性。混淆仅影响显示电子邮件地址的显示方式,而不是其运作方式。发送到混淆的电子邮件地址的电子邮件将按正常运输。>对于所有网站来说,电子邮件混淆是否需要?>
>,尽管并非所有网站都可能需要电子邮件obfuscation,但强烈建议公开显示电子邮件地址的网站。这包括业务网站,博客,论坛和任何其他网站,需要访问者可以访问电子邮件地址。>
>我如何使我的电子邮件地址混淆?>>
>> 有几种方法可以混淆您的电子邮件地址,包括使用字符实体,JavaScript,JavaScript或CSS技巧。还有一些在线工具和插件,可以为您混淆您的电子邮件地址。您选择的方法将取决于您的特定需求和技术功能。
以上是如何用电子邮件混淆停止垃圾邮件收获的详细内容。更多信息请关注PHP中文网其他相关文章!