#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 楼
使用类似ʉẮᶗ
的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
可以呈现为>对于用户而言,它是普通文本,可以复制和粘贴。另一方面,机器人会很难过。
这是我使用的混淆器。
#15 楼
一种方法: <script language="javascript">
<!--
var name = "user"
var host1 = "gm"
var host2 = "ail.com"
var addr =
document.write("<a href=mai" + "lto:" +
name + "@" + host1 + host2 +
">" + name + "@" + host1 + host2 + "</a>")
//-->
</script>
对于已关闭javascript的用户,您可以在
<noscript>
标记中写“解密我的电子邮件:com点gmail的用户”。这样,您可以获得超链接功能。您有很大的机会避免垃圾邮件发送者离开您的地址,并且关闭了javascript或仅纯文本浏览器的人仍可以获取您的电子邮件地址。评论
我对多个变量使用相同的变量-对于我来说,对于机器人来说,将各个值拼凑起来似乎比较困难。
–拉兹洛
2010年7月13日在20:59
#16 楼
如果您有很多人与您联系,那么从长远来看,世界上所有的混淆技术都无济于事。它所要做的就是让某人向您发送消息,然后被某些恶意软件感染,这些恶意软件会扫描他们的收件箱/已发送邮件/通讯录/任何有效地址,然后您的地址就会从列表传递到列表[我什至也有联系人出于最愚蠢的原因,他们愚蠢到无法将电子邮件地址和密码放入在线表格,您可能也有,最近的网站是一个提供计算某人的“电子邮件占星图和预测”的网站,该网站立即将所有愚人与同一个网站的邀请以及我还没有尝试过的另一个选择是使用AJAX请求读取电子邮件地址和其他详细信息。这可能比基于
document.write
的混淆处理稍微有效,尽管会给Web服务器增加一点额外的负担。多达有时甚至超过纯文本电子邮件地址-有时是脚本尝试使用该表单在某处创建帐户,而不是将其用作联系表单。#17 楼
如果您具有漫游器过滤器(使用1x1px,子网,已知的漫游器,jscript检测,http引荐来源网址和浏览器代理),则如果它是漫游器,则根本无法显示该信息。PHP中的解决方案:
<?
if (!isbot()) {
echo 'mailto:'.$email_address_for_real_people;
}
else {
echo 'mailto:yourself_bot@'.$bots_domain_address;
}
?>
评论
顺便说一句,isbot()是用户创建的函数,它指向您拥有的所有bot过滤程序。
–塔尔维·瓦蒂亚(Talvi Watia)
2010年9月6日在22:05
#18 楼
我发现最简单的方法是使用具有默认地址的联系表,但也可以让用户选择通信对象(营销,销售,技术支持等)。然后,基于下拉列表的值,服务器将已发送的表单数据发送到相应的电子邮件地址。在数据库表中运行此联系人列表,以便轻松地更新/添加下拉列表中的条目。这样一来,您就永远不会向垃圾邮件机器人这个广阔的世界公开任何地址,并且仍然可以为您的用户提供一种发送反馈的好方法。
#19 楼
想都别想! -是的,何塞!绝对没有办法“停止”收集
a href="mailto:"
电子邮件地址。长期以来,人们一直认为使用JavaScript是阻止大多数收获机器人的好方法,但是如今,机器人非常擅长于击败这种方法。他们还可以击败包含电子邮件地址的图片,就像使用decaptcha软件可以击败验证码一样。更好的方法!
更好的方法是使用信誉良好提供良好的垃圾邮件阻止功能的邮件服务。 Google G Suite和Microsoft Office 365使用的算法是市场上任何软件都无法比拟的,主要是因为它们每天会收到数百万封电子邮件,并且能够在甚至试图向您发送电子邮件之前就“学习”并将其列入黑名单。
实际上,一年前Google表示,其机器学习技术现在可以阻止99.9%的Gmail垃圾邮件和网络钓鱼邮件,运行在plesk / cpanel后面的本地Microsoft Exchange和邮件服务器无法与这种保护竞争。 br />
摘要
通过使用信誉良好的邮件服务来阻止垃圾邮件,该服务能够进行AI机器学习。您还可以通过阻止使用Cloudflare的垃圾邮件发送者来阻止您的网站的进一步工作,Cloudflare会在大量攻击性机器人到达您的站点之前对其进行检测。
#20 楼
我已经使用fred@no-spam.domain.com多年了。用户通常知道足够多的信息来删除“无垃圾邮件”。评论
我很惊讶您的用户知道足够删除“无垃圾邮件”。通常,假设用户能够思考向前一步会导致灾难性的后果。除非您添加一些指示我这样做的便笺,否则我不会删除无垃圾邮件(即使在这种情况下,很多人也不会读便笺,弹出窗口...)。
–奥马尔·科尔(Omar Kohl)
2010年7月9日在7:54
您如何知道您的用户知道删除“无垃圾邮件”?您只会听到做这件事的人的声音。
–茎
2010年7月9日10:00
@pelms:好点,但有些人认为这是一种优势。它可以用作筛选您收到的邮件的智能筛选器。
– David Spillett
2010年8月6日,9:24
#21 楼
这是另一封电子邮件混淆器:Dan Benjamin的Enkoder。它既是在线应用程序又是Mac的独立应用程序。#22 楼
我要做的一件事是使用http://www.stopforumspam.com上的API来检查垃圾邮件发送者。请随时与我联系以获取详细信息,我将很乐意为您提供帮助!#23 楼
如果您不介意使用JavaScript,则可以使用ROT13之类的方法来混淆电子邮件地址。例如,请参见:http://scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/我个人更喜欢使用与我们联系的表格不用担心水龙头,但是这完全取决于您的要求。
#24 楼
我使用PHP函数生成一些JavaScript,以在运行时输出脚本。请注意,您不需要PHP即可在运行时生成JS,您可以在本地生成一次JS,然后在页面中包含静态JS。还可以在此代码段中使用链接函数下面的代码可以自动混淆给定HTML(其中$ processedContent是HTML)中的电子邮件地址:
$emailMatches = array();
$matchCount = preg_match_all('/(?:[a-zA-Z0-9_\.\-])+\@(?:(?:[a-zA-Z0-9\-])+\.)+(?:[a-zA-Z0-9]{2,4})+/', $processedContent, $emailMatches);
if($matchCount > 0) {
$emailMatches = $emailMatches[0];
foreach($emailMatches as $email) {
$replacement = createJSMailLink($email);
$processedContent = str_replace($email, createJSMailLink($email), $processedContent);
}
}
评论
请注意,击败机器人的任何事物也可能击败视觉障碍的用户stackoverflow.com/questions/748780/…
@MrChrister ...白色打败了用户,但没有击败机器人。
原来……有人安装了一个蜜罐,并在更长的时间内收集了结果。结果如下……superuser.com/questions/235937/…。显然,使用CSS更改地址的方向和/或在电子邮件地址中插入任意隐藏的代码是最好的解决方案。显然,OCR在spambot工具箱中并不常见。
har,我什至不记得我在这里回答了一个与超级用户类似的问题:)