Re: [Exim] Exim and Sieve rules

Top Page
Delete this message
Reply to this message
Author: Ray Jackson
Date:  
To: Tor Slettnes
CC: exim-users
Subject: Re: [Exim] Exim and Sieve rules
<-- Warning: charset 'format' is not supported -->

Hi Tor,

First, thanks for your reply. I have read many differing views on the
Cyrus vs.
Courier issue and still haven't made up my mind which way to go. The main
reasons I like Courier is the shared mail store (i.e. you can have multiple
servers mount the mail store over NFS and not risk corruptions of mailboxes
etc.) - as far as I know Courier is the only solution that will allow us to do
this. I know ext2/ext3 has performance issues with Courier, but here
we have a
NetApp FAS270 filer which apparently performs considerably better with Courier
implementations. The main reason I like Courier is the simplicity of scaling
the solution. We currently have around 70,000 mailboxes (50,000 users). I
like the idea of dropping in another Intel server with the necessary
NFS mounts
sitting behind our Alteon load balancers...

I want to avoid building a complex cluster with heartbeat monitoring etc. or
splitting our customer base up onto 2 mail stores... And then if we have to
scale again, we have to split our users again? I'd rather focus on making our
filer reliable and scalable rather than the mail system! I'm also afraid of
going down the Cyrus path due to their 'proprietary' mail storage methods.
Maildir may not be the most efficient storage method - but it's a lot
easier to
migrate between platforms in the future if we go down this road. It may also
be worth noting that 90% of our users will probably continue to use POP3 to
access their mailbox - and we also intend to install IMAP proxies between our
Webmail (Horde/IMP) boxes and the store to take the load off our mail servers.

I don't want to turn this into Cyrus vs. Courier debate - I think both have
their strengths - but it is important to me that we build a solution that will
easily scale and will run itself with little or no maintenance.

Does anybody have any hard and fast performance figures for Cyrus and Courier?
Also, mail quotas are important to us - and we want to drive everything from a
MySQL database - What provides the best support for MySQL and quota management
- Cyrus or Courier?

Sorry, I've gone a bit off topic - but the boss is breathing down my
neck - and
I need to make an informed decision soon...

Cheers,
Ray

PS. What are people's views on a shared mail *queue* (i.e. mounted queue over
NFS)? We have a modified version of Exim running today (setup by my
predecessor) mounting a shared queue over NFS between 3 servers. Is
this a bad
idea?

Quoting Tor Slettnes :

> On May 4, 2004, at 23:40, Ray Jackson wrote:
>
>> We have built a prototype mail system with everything we need and

it
>> is working
>> perfectly... the only problem is that we are using

Cyrus+timsieved
>> for the mail
>> store. There are a number of reasons why we prefer Courier (e.g.

NFS safe,
>> Maildir format etc.) - however, we are stuggling to get Sieve
>> support working
>> with Courier. [...]
>
> If you are already using Cyrus, don't switch to Courier. You will

be
> disappointed.
>
> For one, Courier is significantly slower, especially with large
> mailboxes. (Consider this list, which adds 50-100 messages in a
> mailbox per day).
>
> Secondly, even if Courier is NFS safe (is it?), you will have even
> larger performance problems delivering mail over NFS shares

(which,
> BTW, would be done by Exim, and not Courier).
>
> If you have many users and several machines, Cyrus provides the
> "Murder" frontend to distribute delivery and pickup.

Architecturally,
> this is more efficient and better designed than a shared

filesystem
> like NFS. (In particular, if a NFS server is unavailable, the

clients
> will typically hang for a very long time, depending on your

"intr", and
> "hard"/"soft" mount options).
>
> Lastly, although Exim does support sieve, and you can deliver

either to
> Maildir or Cyrus (either via UNIX or TCP sockets over LMTP, or
> "cyrdeliver" pipes), I found that Cyrus' implementation of Sieve

is
> more complete and accurate w.r.t. the RFC. After all, the Sieve
> language was developed by Cyrusoft.
>
> Finally, with Cyrus you have the option of using SASL

username/password
> storage. This means that (a) your users do not need UNIX

accounts, and
> (b) you get MD5 (DIGEST-, CRAM-), Kerberos, etc. authentication
> support.
>
> All said and done, here is a simple Exim Sieve script I wrote for
> someone using Courier/Maildir spools:
>
  > ------8
  > if header :contians "X-Spam-Status" "Yes"
  >          { fileinto "Junk"; }
  > else
  >          { keep; }
  > ------8 eximfilter_transport:
  >  driver = appendfile
  >  directory = ${if eq{$address_file}{inbox}
  >  {$home/Maildir}
  >  {$home/Maildir/.${sg{$address_file}{[/.]}{/.}}}
  >  }
  >  delivery_date_add
  >  envelope_to_add = true
  >  return_path_add = true
  >  check_string    = ""
  >  escape_string   = ""
  >  mode            = 0600
  >  maildir_format

>
>
>
> And with the following router:
>
  > eximfilter_router:
  >      debug_print    = "R: eximfilter_router for

$local_part@$domain"
  >      driver         = redirect
  >      check_local_user
  >      file           = $home/.eximfilter
  >      no_verify
  >      no_expn
  >      check_ancestor
  >      allow_filter
  >      file_transport = eximfilter_transport
  >      skip_syntax_errors
  >      syntax_errors_to = real-$local_part@$domain
  >      syntax_errors_text =
  >  This is an automatically generated message.  An error hasn
  >  been found in your .eximfilter file.  Details of the error aren
  >  reported below.  While this error persists, you will receiven
  >  a copy of this message for every message that is addressed ton
  >  you.  A copy of each incoming message will be put in your normaln
  >  mailbox.