Новые капчи, иногда не нужно вбивать символы:
https://nocaptcha.mail.ru/
https://www.google.com/recaptcha/intro/index.html
Если форму заполняет бот(именно бот, не человек автоматизирует процесс), то можно создать
<input type='password' name='password' class='hide-me'>
и проверять, если на сервере $_post['password'] не пустой, значит его автоматом забил бот. Либо наоборот, скрытое заполненное поле, при клике по кнопке "отправить" js его обнуляет. Зависит конечно от бота, но событие click они часто не вызывают, значит при отправке формы наше поле не будет пустым, что снова должно насторожить.
Идеально выяснить, как точно вас спамят и от этого отталкиваться.
Ну и на сервере проверять, что была ли заявка с этого ip. Чтобы не вспугнуть реального пользователя, можно делать, что если повторная заявка в течение получаса, то выводить сообщение, что заявка уже была принята и мы свяжемся как только сможем.