Bunun önüne geçmenin en iyi yolu captchadır. Ama captcha eklemek istemezseniz garantisi olmamakla birlikte şöyle bir yol izleyebilirsiniz.
form içerisine kontrol isilmli input hidden ekleyin ve değerini 0 yapın. Formu submit etmeden önce ise butonun onclick eventında js ile bu input hiddenın değerini 1 olarak güncelletin. ve php ile post verilerini aldığınız yerde $_POST['kontrol'] == '1' şeklinde bir if şartı yazarak kontrol değeri 1 ise mail göndertin. Böylece mouse ile gönder butonuna tıklamadan direk bot ile post edilirse mail gitmeyecektir. Bu yöntem piyasadaki basit botları engellesede birisi özellikle sitenize manuel bot bağlıyosa onun önüne geçmeyecektir.
Örnek kod:
<?php if ($_POST['kontrol'] == '1') { //mail gönder } ?> <input type="hidden" name="kontrol" id="kontrol" value="0"> <input type="submit" value="Mesajı Gönder" onclick="$('#kontrol').val('1');">
Teşekkür ederim dediğinizi çok iyi anladım.
Fakat siteme bot saldırmıyor zaten. Normal kullanıcı yapıyor bunu.

Yani istemsiz yapıyor aslında. "Gönder" buttonuna fazla falan tıklayanlar oluyor, heyecandan veya çabuk davranmak isterken bana mail yağmuru atıyorlar haberleri yok