Я искал SO и нашел пару хороших идей , но ничто из того, что на 100% решило эту проблему с php mail, у меня возникло.
ПРИМЕЧАНИЕ. При удалении этого файла с сервера спам прекращается.Также Captcha на самом деле не вариант, это вызов Ajax, и он должен быть быстрым.Я не уверен на 100%, как спаммеры делают это, но любая помощь будет оценена по достоинству.
Вот фрагмент HTML, добавленный к форме:
<input name="spam_stopper" value="DO NOT CHANGE THIS VALUE" style="display:none;"/>
Вот дополнительный код, который я добавил вверху файла mail.php, который не остановил спам:
if ($_POST['spam_stopper'] != 'DO NOT CHANGE THIS VALUE') {
echo '<h3>Incorrect use of this form!</h3>';
exit;
}
if(!strpos($_SERVER['HTTP_REFERER'],'my-sample-domain-name.com'))
{
echo '<h3>Incorrect use of this form!</h3>';
exit;
}
if($_SERVER['REQUEST_METHOD'] != "POST"){
echo("Unauthorized attempt to access page.");
exit;
}