2

我的网站有以下代码来发送电子邮件。

if($_SESSION["captcha"]==$_POST["captcha"])
{

$msg="Require Services :\t$_POST[service]\n";
$msg="Name :\t$_POST[name]\n";
$msg.="Company Name :\t$_POST[co_name]\n";
$msg.="Address :\t$_POST[address]\n";
$msg.="Mobile :\t$_POST[mobile]\n";
$msg.="Phone :\t$_POST[phone]\n";
$msg.="E-mail :\t$_POST[email]\n";
$msg.="Message :\t$_POST[message]\n";

$subject=$_POST[subject];
$to="info@sriramtrade.com,rajm_123@rediffmail.com";
$headers="From: $_POST[email] < $_POST[email]> \n";
$headers .= "Reply-To: $_POST[email]\n\n";

mail($to,$subject,$msg,$headers);}

?>

即使在使用验证码减少垃圾邮件后,我仍然会收到很多垃圾邮件。

4

2 回答 2

2

添加一个新的输入字段,将其标记为“请留空”,使用 CSS 将其隐藏,如果该字段已填写,则忽略该帖子。像这样:

<style type='text/css'>
#other_email_label, #other_email {
    display: none;
}
</style>
...
<form action='mail'>
<label id='other_email_label' for='other_email'>Please leave blank:</label>
<input type='text' name='other_email' id='other_email'>
...
</form>

因此人类不会看到该字段(除非他们关闭了 CSS,在这种情况下他们会看到标签并将其留空)但垃圾邮件机器人会填写它。任何填充该字段的帖子必须来自垃圾邮件机器人。

于 2009-04-25T08:26:36.343 回答
1

我不确定这是否是您的问题的原因,但您应该$_SESSION["captcha"]在该文件中取消设置,以便用户必须在每封电子邮件中输入一次验证码。现在的方式是,他们可以在提交表单后点击刷新,并快速发送任意数量的电子邮件。

于 2009-04-25T06:25:38.317 回答