Spam filter options for unregistered user to registered user email service I would like to give unregistered visitors the chance to send emails to node authors through a contact form. What would be the best and most efficient way to filter out spam?

1) Simply add a CAPTCHA to the contact form. However, I experienced CAPTCHA module to be not very reliable and I won't be able to afford Mollom.

2) Involve an external Gmail account and make use of their sophisticated spam filters. For example, when user A submits a contact form on a node created by user B, the email is first sent to an external Gmail account, filtered, and then - if spam free - forwarded to user B.
As an alternative for Mollom, perhaps Akismet could work? The service runs analysis on the comments/posts and determines whether they are spam from their content.

As an alternative for Captcha, perhaps Are You A Human could work? Rather than using wobbly text it asks you to complete a very simple game - causing less frustration to your users.

To properly answer your question: Given the two alternatives, I think the most efficient way to filter spam would be through Gmail, although it might violate their EULA.