Since you already had your emailaddress publicly available on the website it's already too late.
You can still remove the plain-text email address from the website. There are several techniques for this, e.g.:
- 'Ofuscate' the address: E.g.
info at example dot com or
- Use an image which contains the emailaddress
- Remove the
mailto: link and let the user just copy/paste the address
As others already have mentioned you should add some sort of a CAPTCHA to prevent bots from spamming you contactform.
IMHO It's impossible to prevent getting spam. Even if you wouldn't had you email address publicly available spammer will still try lots of emailaddresses on a certain domain. If the server sends back a NDR they would know the emailaddress isn't valid. I think the best thing you can do is install a spamfilter. You could either install one on the mail-server or if you don't have access to the server you can always install a spam-filter on the clientside. I use Spambayes myself on the client side and we also use server side filter. So most spam messages just don't reach the client or will be caught on the client side.