Защищаться от спама можно, анализируя поведение посетителей. Многие боты ведут себя не так, как люди.
Человеку нужно некоторое время на ознакомление с содержимым страницы. Программа «читает» всю страницу очень быстро, а поскольку у нее огромный список адресатов, она не может себе позволить подолгу ждать. Впрочем, этот метод достаточно сложен в реализации.
Иногда защита строится на сравнении HTTP-запросов, посылаемых пользователями, с известными спамерскими образцами. Успешность этого способа сильно зависит от качества базы эталонных профилей. Примером такой защиты является модуль Bad Behavior для CMS Drupal.