Hmmmm... creo que no hay ningún sistema infalible, pero creo que el mejor es un formulario de contacto con Captcha y que no permita enviar mensajes si no han pasado al menos 5 minutos desde la misma IP.
Hay otra forma de ponerlo sin que los robots puedan acceder al email:
<p>Email: <span id="email"></span></p>
<style>
#email:after {
content: "ejemplo@dominio";
}
</style>
Otra forma, aún más difícil de intervenir por parte de un robot, es utilizar una imagen:
<img src="email.[jpg|png|etc]" />
El problema de ambas soluciones, es que si quieres dar soporte a los lectores de pantalla (para los invidentes), entonces tendrías que poner el title y el alt para indicarle al lector qué significa la imagen. Además, tendrías que implementar algún tipo de copy to clipboard, que al hacer clic sobre la imagen o el span (del primer ejemplo) se copie el email al portapapeles o se lance el editor de correo (como ocurre con <a href="mailto:mail"></a>).
Por último, también podrías olvidarte del mail y dejarlo a la vista, pero utilizar un buen software antispam.