I am plagued by crappy nonsense from all sorts of sites which have clearly harvested my e-mail address along with millions of others and decided that I need some help for various complaints (how do they know?

)
I like to put my e-mail address on my websites because people do occasionally write and say hi. I've seen e-mail links where the person who wants to mail you has to type in a code that appears in a box, can you use this sort of thing to protect an e-mail address?
Any tips generally on avoiding all the garbage that comes my way would be appreciated.