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

Php 反垃圾邮件/垃圾邮件的选项?,php,jquery,email,bots,spam-prevention,Php,Jquery,Email,Bots,Spam Prevention,作为一名新开发人员,我的问题是:;在我的投资组合网站的联系人表单中,有用户名、主题、电子邮件和评论字段。提交前必须填写用户名和注释。电子邮件必须具有有效的电子邮件地址。到现在为止,我已经很久没有收到垃圾邮件了。我只有一个垃圾邮件机器人每天用同样的垃圾邮件跟踪我十次。我甚至添加了一个强制复选框来验证用户不是机器人。除了验证码,还有其他选择吗?也许能阻止这一个用户?机器人的电子邮件地址在我的电子邮件中不可见。我不想添加验证码,因为它会破坏我网站的凝聚力,也会让我的用户感到痛苦,因为我遇到的人都不喜欢

作为一名新开发人员,我的问题是:;在我的投资组合网站的联系人表单中,有用户名、主题、电子邮件和评论字段。提交前必须填写用户名和注释。电子邮件必须具有有效的电子邮件地址。到现在为止,我已经很久没有收到垃圾邮件了。我只有一个垃圾邮件机器人每天用同样的垃圾邮件跟踪我十次。我甚至添加了一个强制复选框来验证用户不是机器人。除了验证码,还有其他选择吗?也许能阻止这一个用户?机器人的电子邮件地址在我的电子邮件中不可见。我不想添加验证码,因为它会破坏我网站的凝聚力,也会让我的用户感到痛苦,因为我遇到的人都不喜欢跟踪那张恼人的照片

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


谢谢大家的帮助!祝大家编码愉快…

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

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

1) 创建一个标记为“email”的字段,其中包含“请勿填写”的文本。通过CSS隐藏整个内容。如果有人填写,请忽略他们。(真正的电子邮件字段应该被称为“年龄”或让他们感到困惑的东西。相信我,没有人在乎你的HTML怎么说。)

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

3) 手动(或自动)阻止任何出错者的IP(尤指多次)。很可能他们是填表垃圾机器人

4) 删除表单的HTML“操作”和“提交”部分。相反,让它成为一个JavaScript按钮,通过AJAX发布表单。有些机器人会运行JavaScript,但很多不会。如果他们确实运行JS,只需使用多个(隐藏的)按钮就可以发布到错误的位置

5) 禁止任何使用该特定电子邮件地址的IP地址。(请参见故障2ban)

过滤掉机器人程序时,不要返回400/500错误代码。返回带有错误消息的200和文本。对于他们来说,如果他们做对了或错了,那就更难解析了。

制作一个如下的数组:

$blockedEmails = array('@gmail.com','@yahoo.com');
然后在提交时添加if语句:

如果它的电子邮件包含数组中被阻止的电子邮件之一,则拒绝发送,否则接受发送。 您可以使用
foreach
功能,但我不建议将发送邮件放入该循环中,因为在每个未连接到阻止邮件的电子邮件上,它都将被发送

就像垃圾邮件一样=@haha.com,@glagla.com
我的邮件是@boom.com,那么邮件将被发送2次,所以请小心循环;)

多谢各位。我已经更新了我的文件,过滤掉了不需要的电子邮件。我等着瞧,谢谢。我已经更新了我的文件,过滤掉了不需要的电子邮件。我将拭目以待。