【发布时间】:2016-08-09 20:24:12
【问题描述】:
伙计们。我一直在努力解决这个问题,但我对 PHP 很陌生。我已经尝试了各种 PHP 垃圾邮件过滤器教程,但是当我将它们写入表单时,它们都不能正常工作。
我一直在尝试修改的代码是:
<?php
header ("Location: index.html");
if( !empty($_POST['topName']) || !empty($_POST['topEmail']) || !empty($_POST['topPhone']) ) {
$name = $_POST['topName'];
$emailAddress = $_POST['topEmail'];
$phone = $_POST['topPhone'];
$message = $_POST['topMessage'];
$email_to = "companyname@gmail.com";
$email_from = "$name <$emailAddress>";
$email_subject = "Message from online contact form";
$email_body = "From: $name\n" .
"Email: $emailAddress\n" .
"Phone: $phone\n\n" .
"$message";
$email_headers = "From: $email_from \r\n" .
"Reply-To: $emailAddress \r\n";
mail($email_to, $email_subject, $email_body, $email_headers);
}
exit;
?>
唯一有效的部分是添加 !empty 东西,但这仍然只会阻止垃圾邮件,使这些字段为空。当我按照教程进行操作时,我似乎无能为力。有没有什么我可以做一个超级简单的垃圾邮件过滤器,或者一个新手可以理解的教程?
任何帮助或建议将不胜感激!
【问题讨论】:
-
在 PHP 中执行表单数据的验证。这有助于防止机器人通过忽略 javascript 绕过验证。添加验证码或其他一些人工验证系统。这可能就像用户在提交表单时必须填写的一个小数学问题一样简单。
-
您还可以检查
$_SERVER['HTTP_USER_AGENT']并确保提交者使用的是真实浏览器。 -
@chris85 我正在尝试阻止几乎为空的电子邮件,这些电子邮件只是色情或垃圾邮件服务的垃圾邮件广告。我已经尝试了一些教程,当你用谷歌搜索“php 垃圾邮件过滤器”并进行类似搜索时弹出的教程。
-
@Twisty - 感谢您的链接,但我正在尝试在没有验证码的情况下执行此操作。不过,我会让用户代理一试!
标签: php email spam-prevention