Meu voto é para Cyrus. Eu não sei nada sobre Dovecot, no entanto eu usei Courier um pouco antes de despejá-lo em favor de Cyrus. Eu construo todas as minhas coisas da fonte. Nossa pilha é a seguinte:
Postfix
SpamAssassin
Amavisd-new
Cyrus-SASL (smtp-auth e admin de caixa de correio local)
Cyrus-IMAP (POP3 incluído)
Temos pouco mais de 5.000 caixas de correio e cerca de 1.000 aliases. Nós usamos uma configuração muito semelhante à configuração da CMU, em que temos 4 servidores proxy IMAP que também lidam com webmail (Apache + PHP + mod_perl executando Squirrelmail).
5 Dell 2850s (4CPU, 8GIG RAM, RAID10, JFS file system) for the mailbox stores.
4 Dell 1650x (2CPU, 2GIG RAM, RAID5, JFS file system) for the IMAP proxy and Web servers
2 Dell 2850s (4CPU, 8GIG RAM, RAID10, JFS file system) PostgreSQL, one server at each data center. We have a custom whitebox at each data center doing log shipping for database servers.
Usamos o Rsync para manter cópias remotas dos servidores de caixas de correio em caixas brancas e backups usando a Amanda para um servidor de backup + alternador de mídia dedicado.
O desempenho é o segundo a nenhum comparado ao Courier. Ao longo dos anos, eu era um administrador do Sendmail duro com o PROC e o maildrop. O desempenho era um problema constante e a falta de suporte de backend SQL era um pesadelo constante para o administrador. O Sendmail era um ponto dolorido constante em termos de desempenho e é um modelo estúpido de bifurcação + inicialização para cada nova conexão SMTP. Courier teve problemas semelhantes!
Mudar para esta nova pilha fez com que o administrador desse sistema fosse completo. Com o Cyrus e o módulo Cyrus :: IMAP :: Admin Perl, temos alguns scripts personalizados que funcionam e criam as caixas de correio, configuram um script de peneira padrão para filtragem de spam e até envelhecem e excluem e-mails na pasta Lixo eletrônico depois tantos dias (cyrus ipurge).
Concordo que Cyrus é conciso e muito difícil de aprender, mas uma vez que você domina, eu prometo que você vai adorar. Por exemplo, com tudo o que mencionei acima, não tenho contas de usuários locais e todas as configurações são armazenadas em um banco de dados central do PostgreSQL, incluindo as configurações por usuário SpamAssassin e Amavisd-new.
Algumas estatísticas para você:
5000 Mailboxes across 5 mailbox servers (4 IMAP proxies, 2 at each data center)
500 IMAP-IDLE connections per server (500 socket connections per box on average)
Deliver roughly 5 million emails per month, not including spam filtering to Junk folders
Reject 10x the delivery amount based on RBL and other malformed things
All our servers have await stats that hover between .5 and 1 second.
Swap space is at 0% with total memory at 60%
Mailbox CPU (2850) (x4 CPU) during peak times is 30-40% utilization (70-60% idle).
IMAP Proxy (1650) CPU is 10% utilized, these are older Dell 1650s with 2Gig RAM (PIII)
PostgreSQL servers (2850) are at 1% utilized.
Nós compilamos nossos próprios kernels Linux para que não haja nada funcionando exceto o núcleo do que precisamos. Swapiness é aumentado do padrão de 60 para 80.