在网站上列出“联系我们”电子邮件地址,同时减少其被垃圾邮件的可能性的一种好方法是?其他?

评论

请注意,击败机器人的任何事物也可能击败视觉障碍的用户

stackoverflow.com/questions/748780/…

@MrChrister ...白色打败了用户,但没有击败机器人。

原来……有人安装了一个蜜罐,并在更长的时间内收集了结果。结果如下……superuser.com/questions/235937/…。显然,使用CSS更改地址的方向和/或在电子邮件地址中插入任意隐藏的代码是最好的解决方案。显然,OCR在spambot工具箱中并不常见。

har,我什至不记得我在这里回答了一个与超级用户类似的问题:)

#1 楼

我通过一个一次性的Gmail帐户传递所有联系表,该帐户将邮件转发到真实的电子邮件地址。它是免费的,而且很容易,而且Gmail的垃圾邮件检测功能是一流的。

然后,您可以将Gmail收件箱设置为自动存档已转发的任何内容,或者如果您不想在此保留多余的副本,甚至可以将其删除。

评论


我有一个以类似方式使用的Google Apps帐户。与Gmail帐户相比,Google Apps的优势在于,每个帐户最多可以创建50个电子邮件别名(昵称)。我曾经使用Gmail帐户来进行此类操作,但一年后我总是会忘记登录信息,而使用Google Apps则更让人痛苦。 (仍然是一项很棒的技术。+1)

– jessegavin
2010年7月12日14:59

+1,但我看到一个缺点-有些人会信任您自己域中的电子邮件,而不是使用免费电子邮件提供商的一种设置。

–拉兹洛
2010年7月13日在20:53

拉兹洛:我应该更加清楚。起初我遇到了这个问题,所以我目前使用该网站的域设置邮件重定向,该邮件重定向到一个Gmail帐户,再转发到我的个人电子邮件地址(这是另一个Gmail帐户),并用标签定义了哪个网站它来自并跳过收件箱。人们以为他们通过电子邮件发送info@mydomain.com或contact@myotherdomain.com,但他们都来了我的主要Gmail帐户,并位于mydomain,myotherdomain等标签中。

–卡伦
10年7月14日在15:48

Gmail还允许您使用已验证的电子邮件地址进行回复。因此,您可以在gmail中以“ roy@royronalds.com”作为响应,尽管实际的电子邮件会指定一些细微的区别,例如“由roy@gmail.com代表roy@royronalds.com发送”。几乎没有人会注意到您使用gmail来发送邮件,就像从其他地址发送邮件一样。

– Kzqai
10年7月16日在17:38

@Lazlow阅读以上@jessegavin评论

–严格
2010年8月6日上午10:41

#2 楼

使用电子邮件混淆器

评论


@DougHarris您(或其他任何人)是否偶然知道有关此的最新研究(此研究已接近10年)?这些方法今天效果如何?我还没有找到新的研究。

– JonasCz-恢复莫妮卡
17年1月12日在16:50



#3 楼

我的不答案是不要这样做。 GMail和梭子鱼反垃圾邮件设备等现代电子邮件系统在过滤垃圾邮件方面做得非常出色。您与访问者之间设置的任何障碍都意味着较低的参与度,并且取决于网站的类型,这可能会导致销售损失。邮件客户端安装,或者没有正确设置mailto:处理程序的用户,然后在“联系我们”页面中同时包含链接的电子邮件地址和表格(无验证码),然后让用户选择。

垃圾邮件很烦人,但这是我们的负担,而不是我们的用户。

#4 楼

使用自然语言拼写电子邮件地址...

例如:写一个可以区分自然语言的机器人与写一个只搜索@符号并正则表达式正常地址的机器人。

并不是百分百的万无一失,但也比混淆和它不会疏远您的视力障碍用户和/或禁用JavaScript的用户。

更新:以下是此技术的实际应用示例。

更新2:

事实证明,有人实际上对此进行了研究并将其发布在网上。请参阅描述结果的SuperUser帖子或原始文章

评论


我倾向于质疑这种方法。主要是因为它已经存在了很长时间,而且我无法想象在过去10年中开发的任何电子邮件爬虫都不会通过替换“ at”,“ [at]”,“ dot”或类似内容来启动每个新页面与他们各自的角色。

– hultqvist
2010年7月9日在10:27

@phq为什么?是否很难相信没有其他爬虫能够通过为页面拍摄快照,运行OCR和@的正则表达式来击败所有JavaScript并编码混淆选项?仅仅因为有可能创建一个可以解决所有这些问题的漫游器,并不意味着垃圾邮件发送者就可以了。使用自然语言的优点是它的使用比标准电子邮件URI更加多样化。 @符号通常没有。

–伊文·普莱斯
2010年7月9日在21:38



@Evan,我的意思是,这种技术变得太普遍了,通常在打击垃圾邮件时会遇到问题。我声称这种技术不是自然语言技术,就像“用tld com和用户名foo给我发邮件给域示例”。 “ at”技术仅是一种符号替换技术。

– hultqvist
2010年7月10日于13:13

@phq我认为廉价的JavaScript模糊处理技术已经存在很久了,而且很容易破解。关键是,它不会从页面抓取电子邮件中消除页面抓取工具,但会像问题所建议的那样“降低可能性”。另外,这是最容易实现的选择,而不会疏远您的用户。我看不出您的观点如何使这一选择比其他任何选择更糟糕。

–伊文·普莱斯
2010年7月11日在21:28

我也看过thatguy funny-symbol gmail.com

–rlb.usa
2010年7月15日在19:11

#5 楼

就个人而言,我不会在网站上显示电子邮件地址,而是具有易于使用,可访问的“与我们联系”表单,以及指示电子邮件来自何方的信息;允许用户向网站所有者和运营商发送电子邮件,而无需暴露电子邮件地址或跳过各种JavaScript圈等。精致。

评论


现在有很多垃圾邮件发送者都填写了此类联系表格。

–txwikinger
2010年7月9日在18:57

我从不填写联系表格。如果找不到联系人电子邮件,那么我根本就不与该公司做生意。现在,如果对我来说这是必须的并且没有联系电子邮件,我更喜欢通过电话打电话,甚至是国际电话。联系表格的问题是我永远无法确定他们是否会将键入的信息的副本转发到我的电子邮件地址,因此,我不得不将信息复制粘贴到某个位置以跟踪详细信息。

–vmarquez
2010年7月9日在19:22

@vmarquez:足够公平。如果也可以选择将邮件转发到您的地址,您会感到高兴吗?我有许多客户希望使他们的用户以一种可访问的,不启用JS的方式向他们发送电子邮件,而又不将其电子邮件地址暴露给垃圾邮件发送者。他们的站点上确实有他们的电话号码,因此您可以通过这种方式与他们联系;出于好奇,您是否也记录了与公司的通话记录以保持跟踪(看到最多的人声称要记录下来进行培训)?

–扎夫-本·杜吉德
2010年7月9日在19:59

@Zhap:没错,如果表格中的页面上有注释,表明我将通过电子邮件获得一份请求,我很高兴。一些网站包括该说明​​,我使用该表格。对于需要通过电话致电的情况,在通话过程中不会执行我的请求。我要求发送电子邮件,然后继续发送电子邮件。我更喜欢通过电子邮件进行初始联系,因为我倾向于代表许多客户进行产品/服务研究,因此我会详细记录每种情况下的要求/回答。

–vmarquez
2010年7月10日在9:23



@vmarquez:您不能填写表格,然后将填写的表格保存/打印为PDF吗?

–安德鲁·格林(Andrew Grimm)
2011年3月5日22:33

#6 楼

使用CSS从真实文本中隐藏一些噪声(仅在一行中,我对其进行了格式化以更好地说明该技术):

-snippet:

u<span class="spam">noise</span>ser
@<span class="spam">noise</span>
example<span class="spam">noise</span>
.com


如果需要有效的mailto:内容,则必须通过dom中的jscript创建它,请参见其他答案。但我不是那个大朋友。

评论


这对选择文本有用吗?

– AndreiRînea
2010年7月9日在20:21

由于屏幕阅读器倾向于忽略样式表,因此无法访问。

–心怀不满的山羊
10年7月12日在15:53

#7 楼

我要做的是将电子邮件地址写为单词,并用span标签包裹:<span class="email">joe dot blow at gmail dot com</span>。然后运行页面级脚本,抓取任何此类跨度并将其替换为构造的电子邮件链接。可能不太模糊,但我没有任何抱怨。另外,如果禁用了JavaScript,则用户仍然可以读取实际的跨度文本。

评论


对于好的机器人来说,这不会有太大帮助。如果该机器人运行JavaScript(这不是一件大事-在浏览器引擎中运行页面并获取生成的HTML),则它具有完美的地址。在gmail点com上捉住某人并不比在某人上捉住难一点。

–迈尔奇亚(Mircea Chirea)
2010年7月17日在6:26



#8 楼

最好的解决方案:使用垃圾邮件过滤器。

我实际上使用Gmail处理我的业务的POP3电子邮件帐户,因为在不同计算机上检查电子邮件要容易得多。 Gmail的垃圾邮件过滤器是世界上最好的。

,因此您只需要显示webmaster@example.com作为您的电子邮件地址,就可以忽略垃圾邮件。

评论


+1,垃圾邮件刺客还可以调整为对于不想使用Google的用户非常有效。

– Tim Post
2010年7月28日在19:06

#9 楼

使用类似&#649&#7854&#7575的html编码,浏览器将其渲染为“ abc”

评论


我以前使用过这种技术,并且看起来效果很好。它对用户也是透明的,并且不依赖JavaScript :)

– Michael Mior
2010年7月15日在19:16

编写一个机器人来解析该文本将是一件非常痛苦的事情。另一方面,很明显这是电子邮件地址或敏感内容。

–迈尔奇亚(Mircea Chirea)
2010年7月17日在6:30

实际上,编写一个机器人来解析HTML实体真的很容易。解密编码的文本是计算机可以很容易地完成的事情,但是人类却遇到了很多麻烦(这就是为什么您的浏览器为您做到这一点)。这就是为什么这种方法仍然有效的原因。

–Lèsemajesté
2010年11月1日,0:11

#10 楼

使用图形库(例如PHP支持的GD或类似的库)动态创建包含电子邮件地址的.png图像。但不是透明的;它们不能复制并粘贴,但必须从头开始重新键入),但安全性也较低:计算机可以读取清晰的图像。

但是总的来说,我认为这是妥协它将阻止绝大多数垃圾邮件机器人。

评论


它还会激怒绝大多数用户。无需单击,无需复制粘贴,亲爱的,谢谢,这在像电话这样的小型设备上尤其令人讨厌,在该设备上您无法真正快速键入。

–迈尔奇亚(Mircea Chirea)
2010年7月17日在6:33

#11 楼

一种不错的方法,但不是完美的方法是通过javascript创建电子邮件地址。大多数搜寻电子邮件的蜘蛛都不执行JavaScript,因此找不到可读取的电子邮件地址。

评论


没有启用JavaScript的用户呢?

–伊文·普莱斯
2010年7月9日在8:56

@Evan:在21世纪,谁会禁用JavaScript,除了那些罕见的从生产盒中浏览Web的系统管理员? ;-)

–克里斯·W·雷亚(Chris W. Rea)
2010年7月9日在22:26

@Chris,如果要从需要Java的站点(例如该站点)中获取特定信息,我只会打开Javascript(或cookie)。当然,我可能是最后一个……:)

–独眼巨人
2010-11-28 14:22

#12 楼

我使用一个简单的Python脚本将电子邮件地址转换为mailto链接,其中电子邮件地址是HTML实体编码的。这对用户是完全透明的,但是似乎掩盖了内容,足以打败大多数头脑笨拙的收割机器人。 >
#! /usr/bin/env python3.0

def entity_encode(text):
    out = ""
    ba = text.encode()
    for i in range(len(ba)):
        out = out + "&#x{0:02x};".format (ba[i])
    return out

def print_email_link(address) :
        print('<!-- {0} -->'.format(address))
        print('<a href="{0}{1}">{1}</a>'.format(entity_encode("mailto:"), entity_encode(address)))


print_email_link("test123@example.com")


将结果粘贴到网页中时,浏览器将文本“ test123@example.com”显示为“ mailto:test123@example.com”的超线,因此清楚地包括地址,对最终用户一样方便。但是,它似乎确实打败了许多收割机器人。 HTML来源。

#13 楼

在向用户显示电子邮件地址之前(或让您提交联系人之前,如果您有联系表单,请先让用户解决验证码)。 。

评论


我不知道哪个更烦人,必须输入验证码或单击电子邮件链接以获取Outlook Express设置向导。这显然取决于听众,但我认为联系方式是必经之路。

–加百列
2010年7月8日23:40

@Gabriel:验证码肯定很烦人,但我完全同意你的看法。我希望人们停止使用mailto。现在,通过服务器直接发送电子邮件已经足够容易了。

–奥马尔·科尔(Omar Kohl)
2010年7月9日在7:58



CAPTCHA不是恕我直言的解决方案。不要因为他人的罪行而惩罚用户。如果有其他解决方案,您将给用户带来负担。

–vmarquez
2010年7月9日19:16



#14 楼

我很迷惑,其中的电子邮件地址实质上是使用Javascript呈现的。例如,my@email.com可以呈现为
>对于用户而言,它是普通文本,可以复制和粘贴。另一方面,机器人会很难过。

这是我使用的混淆器。

#16 楼

如果您有很多人与您联系,那么从长远来看,世界上所有的混淆技术都无济于事。它所要做的就是让某人向您发送消息,然后被某些恶意软件感染,这些恶意软件会扫描他们的收件箱/已发送邮件/通讯录/任何有效地址,然后您的地址就会从列表传递到列表[我什至也有联系人出于最愚蠢的原因,他们愚蠢到无法将电子邮件地址和密码放入在​​线表格,您可能也有,最近的网站是一个提供计算某人的“电子邮件占星图和预测”的网站,该网站立即将所有愚人与同一个网站的邀请以及的联系只知道我们现在正在访问的其他列表]。离开地址-它位于一次性子域中。如果我开始在该子域上收到垃圾邮件,则创建一个新的垃圾邮件,更新列出我的联系方式的网站,不久之后,我将其从DNS记录中完全删除。如果执行此操作,或使用其他任何一次性地址技术,请确保(在列出该地址的任何页面上以及使用该地址发送的任何邮件的页脚中)清楚表明该地址将来会更改,并且人们可以无法通行,他们应该回来核对以确保他们具有正确的地址。或复制+粘贴,而无需随后动动脑筋来编辑地址(我总是惊讶于有那么多聪明而又细心的人无法正确地完成这类工作)。这也意味着我的邮件服务器没有花很多时间来退回已过期子域中发送到“随机”地址(aaron @,adam @,amy01 @ ...)的邮件。它还不会混淆盲人或位置不佳的人所使用的屏幕阅读器。

我还没有尝试过的另一个选择是使用AJAX请求读取电子邮件地址和其他详细信息。这可能比基于document.write的混淆处理稍微有效,尽管会给Web服务器增加一点额外的负担。多达有时甚至超过纯文本电子邮件地址-有时是脚本尝试使用该表单在某处创建帐户,而不是将其用作联系表单。