Ja mogę zaproponować swoje rozwiązanie, może nie jest super skuteczne ale wątpię by któryś z botów to potrafił, mianowicie, dodajemy do formularza (np: via jQuery) tuż przed wysłaniem ukryte pole które jest np: md5 z innego pola/pól i w php sprawdzamy zgodność. Normanie w kodzie tego pola nie widać więc bot go nie wypełni a już tym bardziej nie poprawnie. Oczywiście łatwo to obejść ale wymaga interwencji człowieka i przeprogramowania bota, a wątpię by komuś się chciało tylko do 1 stronki to robić. Stosuje coś takiego w jednym z swoich serwisów i do dziś 0 botowego spamu. Można pokombinować i jakieś pochodne stosować. Ma to tą zaletę że człowiek nie musi przepisywać captcha czy innych cudów aby wysłać formularz.
Zabezpieczać się warto, czytałam, że komuś zablokowano konto na serwerze, gdyż ktoś spamował (chyba bot) niezabezpieczonym formularzem. Jeśli chcesz captche wybierz czytelną , a nie taką, której odczytanie jest horrorem. To wystarczy na boty sieciowe, no chyba, że znajdzie się człowiek, który będzie chciał złamać twoją captcha, bo każda captcha jest do złamania.
Jeśli nie chcesz captcha to może spróbuj coś takiego jak sblam http://sblam.com/
Zabezpiecza fora, blogi i księgi gości przed spamem (botami masowo wysyłającymi reklamy viagry, kredytów i innych śmieci). Skutecznie zabezpiecza bez fatygowania użytkowników zagadkami albo obrazkami do przepisywania. Pozwala użytkownikom mieć wyłączony JavaScript albo nietypową przeglądarkę.
Są też programy do filtrowania wiadomości przychodzących na skrzynkę mail.