A parte SMTP é bastante simples, eu acho - tanto para filtrar o tráfego de entrada quanto para fornecer serviço de saída - eles são completamente sem estado. Então, para aqueles - mestre habitual + configuração hot standby baseada, por exemplo, em heart-beat e 'virtual ip' atribuído ao ativo nó seria muito bem.
mas ... existe o risco de perder mensagens que estão em trânsito [por exemplo, sendo verificadas pelo antispam ou estarem em fila para entrega de saída devido à lista cinza do outro lado] quando o servidor morrer.
para o imap / acesso à caixa de correio em sistemas não muito carregados eu iria novamente para a configuração master + hot-standby, mas desta vez precisamos adicionar a replicação de caixa de correio. dependendo do tamanho - rsync simples executado a cada 10 minutos poderia fazer o truque, mas se falamos de milhares de caixas de correio e milhares de mensagens em cada - baseado em drdb A replicação teria um melhor desempenho.
palavra de aviso usual: se você configurar o cluster de alta disponibilidade, verifique-a periodicamente - por exemplo, a cada trimestre ou mais. descobrindo que o que você espera que seja HA não é realmente HA quando você precisa é um sentimento bastante desagradável.
para o MTA eu uso geralmente postfix , para o IMAP - courier , para antispam - ESVA [ agora parece estar morto, mas as pessoas tentam para revive-o ressurgido] ou mailcleaner .