Para prevenir abuso y errores del usuario, puedes tratar de utilizar PHP sessions.
Creo algo como esto;
Código PHP:
Ver original
if(!isset($_SESSION['last_email_sent']) OR
$_SESSION['last_email_sent']==null OR
$_SESSION['last_email_sent']<time()){ //Let's send mail
set_session
("last_email_sent",time()+60*5); // 5 minutes timeout}else{
//Mail has been send within 5 minutes
}