Memcaсhe для почтового скрипта?
У меня была похожая задача с запросами к апи, ограниченными по времени: не более 3 в секунду с одним токеном. Думаю, вам подойдёт такой алгоритм:
Хранить в качестве значения массив времён (unix timestamp: time()) последних обращений."8.8.8.8" => "1321009871,1421009871,1521009871"
При поступлении очередного смотрим, сколько значений сейчас в массиве.
Меньше 3 – выполняем запрос.
3, но время последнего более, чем достаточно назад – выполняем запрос.
Иначе отклоняем.
При выполнении запроса добавляем в начало массива текущее время, и стираем лишние элементы, если больше 3 получилось.
Попробуйте рекапчу: https://www.google.com/recaptcha/intro/index.html 
Или некапчу: habrahabr.ru/company/mailru/blog/255633
Эти штуки делают ввод капчи максимально простым или даже необязательным, но при этом защищают от спама.Ограничить макс. число писем с одного IP в минуту 3 штуками, в час 10.
Очень интересно, откуда взялись такие лимиты? Расчет на то, что на сайт никто заходить не будет? 
Стоит отметить, что через gprs один айпишник может быть на тысячи  (если не десятки тысяч) пользователей.