Re: Automated newsletter subscribers...
Without making it a two-step affair, where the user has to click on a link from an email you send them, there's no good way to validate an email address. A lot of large email providers will not return a 550 error for an invalid user if you try sending a test mail (it just helps the spam generators to refine their lists and get more efficient).
The problem with trying to do this through email confirmation is that if you get hammered by a bot using fake addresses at real domains, you end up sending a lot of mail to fake addresses at real domains, and that may just mark you as a spamhaus yourself. (Having left a SMTP relay open for a few hours once back in the caveman days, I have to tell you that it's really, really hard to get yourself off of a spam list once you're on one.)
It's easy for a human or a sophisticated bot to get around this simple system. Human "mechanical Turks" are responsible for a rather large amount of the comment spam in this world, and being humans they can defeat any CAPTCHA you might think of using. A sophisticated bot wouldn't really be trying your newsletter subscription form -- it would see that there are no fields it can use to deliver its payload, and try elsewhere on your site. There are ways of strengthening this simple obstacle (using time-limited value tokens unique to the user/session), but the simple approach should do it for the class of "attack" you're facing. (If not, then we can always make your back-end ridiculously complicated later.)
“Beware of bugs in the above code; I have only proved it correct, not tried it.” --Donald Knuth
"It was as if its architects were given a perfectly good hammer and gleefully replied, 'neat! With this hammer, we can build a tool that can pound in nails.'" -- Alex Papadimoulis (on TheDailyWTF.com)