我在我的网站上显示电子邮件如下
但是我在使用woorank.com分析我的网站时阅读了以下内容,我该怎么做才能避免这种情况?
恶意机器人刮网搜索电子邮件地址,纯文本电子邮件地址更容易被垃圾邮件发送.
JazzyP.. 31
在过去,我已经看到这用javascript完成.基本上,您将电子邮件地址分配给javascript变量,并使用这些变量更改元素的内容.您还可以为禁用javascript的用户提供后备,如果需要,可以将其指向表单的方向.这是一个例子
var user = 'foo', domain = 'bar.com', element = document.getElementById('email'); element.innerHTML = user + '@' + domain; //OR //'Email'
这种方式机器人永远不会看到电子邮件地址,因为他们不加载JavaScript.
在过去,我已经看到这用javascript完成.基本上,您将电子邮件地址分配给javascript变量,并使用这些变量更改元素的内容.您还可以为禁用javascript的用户提供后备,如果需要,可以将其指向表单的方向.这是一个例子
var user = 'foo', domain = 'bar.com', element = document.getElementById('email'); element.innerHTML = user + '@' + domain; //OR //'Email'
这种方式机器人永远不会看到电子邮件地址,因为他们不加载JavaScript.
好吧,你可以每天找出不同的方式.这是一个使用jQuery.
然后使用jQuery处理单击.
$('a.mail').on('click', function(){ var href = $(this).attr('href'); $(this).attr('href', href.replace('badmail.', '')); });
我之所以喜欢这样,是因为我可以让垃圾邮件发送者通过虚拟邮件域垃圾邮件,认为他们收到了另一封电子邮件.如果我维护自己的垃圾邮件过滤器,我可以收集样本到我的坏桶.
此外,这种方法允许您使用动态数据渲染页面非常干净,并且只需在整个站点上使用javascript片段一次即可处理实际用户点击.
也适用于手机.
在网站上隐藏电子邮件有多种不同的选择,通常使用电子邮件地址的HTML实体版本(如Aziz-Saleh建议的那样),但从实际的网页设计角度来看,只需将电子邮件地址放在网站上即可不是最友好的用户.
例如,mailto:
链接会自动触发浏览器打开用户选择的电子邮件应用程序 - 但请考虑这一点.并非每个人都有专门的电子邮件应用程序 例如,我不使用Outlook(我是Windows用户),除非我安装了Windows Live Mail,否则我的计算机无法打开该链接.我认为如果您已登录,Chrome可以打开GMail的链接,但我需要检查一下.
最终,通过使用mailto:
,您可能会疏远部分用户群,而这些用户群首先无法使用该链接.
我建议使用电子邮件表单,有很多易于学习的教程可用于PHP和您的语言JSP
,例如此链接:在JSP中发送电子邮件甚至在StackOverflow上
通过使用您的服务器发送电子邮件,您可以更严格地控制电子邮件的生成方式,允许用户输入的数据,甚至可以向他们发送回复电子邮件(由服务器生成)以确认您拥有收到他们的消息.这是一种经过实践检验的现实方法,允许客户和访客与您联系,同时仍然保护和控制整个过程.
TL; DR:原始mailto:
链接可能会疏远没有专用电子邮件程序的人,而如果您使用JSP表单,则可以控制他们与您联系的方式,使用哪些信息(您可以使用字段和HTML5 required
属性来强制某些输入字段),您可以甚至回复do-not-reply
一封电子邮件,以便他们知道他们的消息被听到(只是不要忘记询问他们的电子邮件地址)
解决方案1:
你可以使用许多公开的电子邮件地址编码器(谷歌的第一个结果):
http://www.wbwip.com/wbw/emailencoder.html
这将电子邮件编码为其字符实体值,这将需要更多的逻辑形式刮刀来解码它.
因此,一个电子邮件,如:test@gmail.com
成为test@gmail.com
可以在一个mailto被使用.
解决方案2:
使用在线电子邮件到图像转换器(再次在谷歌的第一个结果):
http://www.email2image.com/Convert-Email-to-Image.aspx
使它成为一个图像.其他服务使您可以通过以下API自动执行此操作:
https://www.mashape.com/seikan/img4me-text-to-image-service#!endpoint-Main
就我个人而言,我想到了这个代码,非常简单明了,有点有趣,我将这段代码扔到希望我的电子邮件地址出现的位置: