Archive for June, 2009

IMAP Proxy

IMAP Proxy

Parece óbvio, mas poucos se lembram da possibilidade, de “cachear” as conexões IMAP em uma única, a fim de diminuir as requisições IMAP vindas por HTTP (webmails, em específico), pois como o HTTP é um protocolo “stateless”, ou seja, não mantém uma conexão persistente e automaticamente cada REQUEST é uma nova conexão IMAP em seu servidor.

Para resolver isto, existe a solução de Proxy IMAP. Existem alguns software para isto, mas no momento estou usando o “imapproxy” que pode ser baixado no site do projeto, www.imapproxy.org.

O software é extremamente simples e intuitivo, não precisando de mais de 10 minutos pra entender e colocar no ar.

A característica principal do software é manter uma conexão única por usuário. Ele mantém as credenciais enviadas pelo client cacheadas e uma conexão persistente com o servidor IMAP.

Instalação

Baixe o software no site do projeto:

1
user ~/ $ wget http://www.imapproxy.org/downloads/up-imapproxy-1.2.6.tar.gz

O imapproxy depende de ncurses para compilar, então, baixe-o e instale-o!

Compile-o e instale-o, ou então busque o pacote da sua distro.

Para os Slackers de plantão:

1
2
3
4
5
user :~$ tar xvzf up-imapproxy-1.2.6.tar.gz
user :~$ cd up-imapproxy-1.2.6/
user :~/up-imapproxy-1.2.6$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
user :~/up-imapproxy-1.2.6$ make
user :~/up-imapproxy-1.2.6$ sudo make install

Instalado, a configuração é extremamente simples, mas vou explicar algumas delas.
O arquivo de configuração de acordo com nossa instalação estará em /etc/imapproxy.conf.

1
2
3
4
5
6
7
server_hostname 200.x.x.x  # Este será o servidor de destino
cache_size 100 # Número de conexões máximas que poderão ser "proxyadas"
listen_port 143 # Onde o imapproxy escutará as conexões
# listen_address 127.0.0.1 # Neste caso se indefinido (comentado), irá escutar todas os endereços.
server_port 1143 # Porta do servidor de destino, neste caso, estou usando o IMAP em uma porta diferente.
cache_expiration_time 300 # Tempo do cache em segundos
proc_username mail # Usuário que irá rodar o processo do imapproxy

Para configuração básica (provavelmente a maioria dos casos), estes parâmetros serão os utilizados, mas existem alguns poucos a mais que poderão ser alterados de acordo com a necessidade.

Para iniciar o serviço é somente executar o daemon:

1
user ~$ sudo imapproxy

Pronto, seu IMAP Proxy está no ar!

1 Comment