反垃圾邮件/垃圾邮件的选项?

时间:2014-04-07 02:45:40

标签: php jquery email bots spam-prevention

我作为新开发者的问题是这样的;在我的投资组合网站的联系表格中,有用户名,主题,电子邮件和评论的字段。用户名和评论必须在提交前填写。电子邮件必须有有效的电子邮件地址到目前为止,我已经很长时间没有垃圾邮件了。我只有一个垃圾邮件机器人每天使用相同的垃圾邮件跟踪我十次。我甚至添加了一个强制复选框来验证用户不是机器人。除了Captcha之外还有其他选择吗?也许有人阻止这个用户?机密电子邮件地址在我的电子邮件中是不可见的。我不想添加Captcha,因为它会破坏我的网站的凝聚力,并成为我的用户屁股的痛苦,因为没有我见过的人喜欢跟踪那张烦人的照片。

www.thesunkenweb.com是我的网站供参考。

感谢大家的帮助!祝大家快乐编码......

3 个答案:

答案 0 :(得分:1)

如果要阻止那个垃圾邮件,那么在服务器端代码中,只需添加一个检查以查看它是否与该邮件匹配。如果是这样,请不要发送电子邮件。

答案 1 :(得分:0)

垃圾邮件预防是一种猫捉老鼠的游戏。一些技巧:

1)创建一个标有“email”的字段,其中包含“不填写”的文字。通过CSS隐藏整个事物。如果有人填写,请忽略它们。 (真正的电子邮件字段应该被称为“年龄”或者混淆他们的东西。相信我,没有人关心你的HTML说的。)

2)创建一个简单的拼图,比如“什么是1 + 1?”如果他们弄错了就抱怨理论上,他们可以轻松修改他们的机器人。但他们不太可能(除非他们特别试图向您的网站发送垃圾邮件)。

3)手动(或自动)阻止任何错误的人的IP(特别是不止一次)。可能他们是填表垃圾邮件的机器人。

4)删除表单的HTML“action”和“submit”部分。相反,将它设为一个JavaScript按钮,通过AJAX发布表单。一些机器人将运行JavaScript,但许多机器人不运行。如果他们确实运行JS,只需要将多个(隐藏)按钮POST到错误的位置。

5)禁止使用该特定电子邮件地址的任何IP地址。 (见fail2ban

当您过滤掉机器人时,请不要返回400/500错误代码。返回200并带有错误消息的文本。如果他们弄错了,他们就更难解析。

答案 2 :(得分:0)

制作如下数组:

$blockedEmails = array('@gmail.com','@yahoo.com');

然后在提交时添加if语句:

如果它的电子邮件包含数组中阻止的电子邮件之一,则拒绝发送其他接受发送。 您可以使用foreach函数,但我不会建议将发送邮件放入该循环中,因为在每封电子邮件上都没有与其中一个封锁电子邮件相关联。

就像垃圾邮件= @ haha​​.com,@ glagla.com 我的邮件是@ boom.com然后邮件将被发送2次,所以要小心循环;)