Open source (Linux) equivalent of Outlook/Exchange mail-processing rules engine?

Anyone out there in the Linode shire know of one of these? I've been burning up the electrons searching for one.

Hell, I'd settle for just some documentation on what's available in the Outlook mail-processing rules engine (so I can roll my own). Yes, I know about sieve…it has a lot of limitations…I'm looking for something more capable (especially in doing multiple IMAP-folder filing and pattern-matching in headers).

Thanks in advance…

-- sw

2 Replies

Hey @stevewi - I did a little Googling myself on this and came across a couple links that might give you some things to play around with. Hopefully you haven't been through them yet. :)

This was the most intriguing to me, and I found it in Ubuntu's documentation. Looks like you're able to filter mail into folders (among other options), but you'll need sendmail active first:

Ubuntu Manpage: mailagent

I also found this MDA (Mail Delivery Agent) via of all places. It's called procmail and seemed pretty customizable:

Process your email with procmail

I admittedly haven't tried these out myself, but I hope they help. Let us know if you end up finding something that works for what you're looking to do!

@jdutton --

Thanks for the tips on both of these. I had heard of them both but will probably look at mailagent more closely. It's written in perl(1)…and pretty vintage (circa 2008). mailagent was developed in the days before IMAP -- when things mailbox formats (e.g. Maildir or mbox) mattered and sendmail(1) was the only MTA in town. It uses lex(1)-like "rules" (ugh!) and also doesn't have a maintainer. Still, it could be a place to start on something new…

I used to use procmail(1) in the 1980s but it's cryptic and has been dead for a long time. The developer(s) are steering potential users to sieve because it's syntax/semantics are governed by RFCs. procmail(1) also has a number of security vulnerabilities (that will never be fixed). See:

The last release of procmail was in 2001!

Just to give you all a flavor of what a procmail(1) "recipe" is like, here's an example:

:0: c
* ^From.*

This recipe forwards any mail coming From: to As you can see, not the most readable or user-friendly of specification languages. The line at the beginning -- :0: c -- tells procmail(1) lock the incoming message and treat the message going to the rest of the recipe as a Cc: (:0 always begins a recipe, the next : says to lock the message and c says to treat the message as a Cc:.

-- sw


Please enter an answer

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct