How's your Ruby?
I only ask, because I'd probably solve this problem by using Logstash, and writing a custom input plugin to accept SMTP data. Or use some kind of external filter to make SMTP data be adequately represented in one of the existing accepted input formats.
Edit:
By external filter, I'm hinting at something written in a suitable scripting language (Perl, Python, etc) that will act as a SMTP client (or server, depending on your POV), connect to the SMTP server, grab the message, and then make it into a format that Logstash accepts natively, be it AMQP (my preference for this), or raw TCP.
Edit 2: I've just found a project for converting SMTP to AMQP using a rabbitMQ plugin. A bit of a long way around, potentially, but still quite a neat idea. You'd set up a RabbitMQ server with this plugin, that would then convert SMTP messages to AMQP, which Logstash would then consume and analyse.
It's a bit of a niche problem, which is why you'd probably do better writing your own, or writing a plugin for an existing something.