Я бы сказал, что вам лучше не беспокоиться; Спам-фильтры на стороне клиента в наши дни довольно хороши, и, прыгая через обручи, вы просто усложняете жизнь людям.
Тем не менее, лучший способ - преобразовать его в любой формат, который вы хотите, будь то изображение или простая подстановка строк:
joe@domain.com -> joeATdomainDOTcom
, а затем запишите адрес, помеченный каким-то идентификатором класса:
<a href="mailto:joeATdomainDOTcom" class="Email">
<!-- image or link text here -->
</a>
Затем используйте Javascript для декодирования всех ссылок электронной почты и переписать атрибут href по реальному адресу. Большинство пауков, сканирующих адреса электронной почты, не будут выполнять Javascript, поэтому закодированный полуполезный адрес - это все, что они увидят.
Пользователи с включенным JS получат более или менее ожидаемую функциональность (кликабельные почтовые ссылки), в то время как пользователи без JS по крайней мере получат удобочитаемые адреса.
Худшее, что вы можете сделать, - это записать незашифрованные адреса и довериться JavaScript, чтобы скрыть их.