Cyrus Aggegator: IMAP com escalabilidade

Em um artigo anterior, eu apresentei o Cyrus Imap e suas principais funcionalidades:

https://respirandolinux.wordpress.com/2013/03/20/sobre-o-cyrus-imap/

Agora apresento o Cyrus Aggregator, recurso nativo para escalabilidade do Cyrus. O ambiente Aggregator (muito vezes chamado também de Murder, devido a um artigo que foi publico com o título “Cyrus Aggregator: The Imap Murder”), permitir distribuir as caixas postais IMAP e POP entre diversos servidores de forma transparente aos usuários, isto é, sendo apresentado como único ambiente.

 A solução possui três classes de servidores: Frontend, Backend e Mupdate. Os clientes IMAP/POP se conectam aos servidores Fontends que por sua vez realizam a consulta no servidor Mupdate obtendo a localização da caixa postal do cliente conectado e o servidor Mupdate informa aos Fontends que estabelecem a comunicação com o Backend trazendo a caixa postal do usuário. Os servidores Backend armazenam as caixas postais e informam ao servidor Mupdate a sua localização, permissões e mudanças, o Mupdate sincroniza com os Frontends a posição das caixa postais e controla para que não haja conflitos.

Nesta arquitetura, os servidores Frontend recebem a relação de caixas postais do ambiente do servidor Mupdate, esta classe de servidor não possui dados, portanto é redundante em todos os aspectos. Se a relação de caixas postais corromper em algum servidor Frontend, basta remover essa base e sincronizar com o Mupdate novamente. É possível adicionar novos servidores Frontend e Backend a qualquer momento, sem impacto no ambiente.

 

 

Cyrus aggregator: Servidor Backend retornar mensagem de férias / fora do escritório

Essa dica é para quem possui o Cyrus Aggregator ou pretende implementá-lo,  para que o serviço Sieve no servidor Backend consiga enviar a mensagem de férias (ou fora do escritório), é necessário ter um MTA configurado localmente. Abaixo segue uma configuração básica caso opte por utilizar o Postfix para atender esta demanda, o SMTP configurado no Backkend somente irá efetyar Relay para o servidor SMTP desejado:

O arquivo abaixo também está publicado em: https://github.com/fsschmidt/cyrusimap/blob/master/Aggregator/backend-main.cf

# Arquivo de configuração para servidores Backend com Cyrus Aggregator
# Efetua o relay para o servidor SMTP desejado
# Debian specific: Specifying a file name will cause the first
smtpd_banner = $myhostname ESMTP
biff = no
append_dot_mydomain = no
readme_directory = no
myhostname = NOME_DA_MAQUINA
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = NOME_DA_MAQUINA
#ENDERECO DO SERVIDOR SMTP PARA ENCAMINHAR A MENSAGEM
relayhost = SMTP_PARA_EFETUAR_RELAY
#CONTROLE DE ACESSO, INCLUIR SOMENTE LOCALHOST E IP DO PROPRIO SERVIDOR
mynetworks = 127.0.0.0/8 IP_REDE_SERVIDOR_BACKEND/32
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4