Fetchmail Multicontas com Postfix e Dovecot: Configuração, Exemplos e Automação

Introdução

Fetchmail é uma ferramenta consolidada para recuperar e-mails de servidores externos (POP3/IMAP) e entregá-los a um servidor local (geralmente Postfix + Dovecot). Em ambientes onde múltiplas contas precisam ser sincronizadas, configurar fetchmail para trabalhar com várias contas e automatizar a tarefa via cron é essencial.

Este post detalha:

  • Configuração para múltiplas contas remotas
  • Integração com Postfix/Dovecot via MDA (Mail Delivery Agent)
  • Automação com cron para execução periódica
  • Explicação do uso do comando sendmail no contexto do fetchmail

Pré-requisitos

  • Servidor Linux com Postfix e Dovecot configurados e funcionando
  • Usuário local para receber as mensagens
  • Credenciais e servidores das contas remotas

1. Instalação do Fetchmail

apt update
apt install fetchmail

2. Configuração para múltiplas contas

O arquivo principal é o .fetchmailrc do usuário que vai rodar o fetchmail (normalmente root ou um usuário dedicado).

Exemplo de .fetchmailrc com duas contas:

poll imap1.exemplo.com protocol IMAP:
    user "[email protected]" password "senha1" is "localuser1" here
    ssl
    mda "/usr/sbin/sendmail -i -f %F %T"
    options fetchall

poll pop3.exemplo.net protocol POP3:
    user "[email protected]" password "senha2" is "localuser2" here
    ssl
    mda "/usr/sbin/sendmail -i -f %F %T"
    options fetchall

Explicação:

  • poll — endereço do servidor remoto com protocolo e porta
  • user / password — credenciais da conta remota
  • is “localuser” here — entrega local para o usuário no sistema (usuário que tem mailbox ou maildir configurado no Dovecot/Postfix)
  • ssl — conexão segura (recomendado)
  • mda — encaminha o e-mail para o MTA local (Postfix via sendmail)
  • options fetchall — força o download de todos os e-mails não baixados

3. Entendendo o uso do comando sendmail no fetchmail

Embora o nome sendmail remeta ao antigo daemon SMTP, no contexto do fetchmail, o comando:

mda "/usr/sbin/sendmail -i -f %F %T"

não é o daemon clássico “sendmail”, mas sim o binário compatível que o Postfix disponibiliza para receber e-mails localmente.

Por que usar esse comando?

  • Ele recebe a mensagem do fetchmail e a insere na fila do Postfix para entrega local, respeitando as configurações de mailbox e usuários.
  • É um padrão UNIX amplamente suportado por vários MTAs modernos, garantindo compatibilidade.
  • Evita a necessidade de configurar um agente de entrega separado (como procmail ou dovecot-lda), simplificando o setup.

Alternativas

Se desejar, é possível usar outros MDAs, como:

  • procmail
  • maildrop
  • dovecot-lda (entrega direta pelo Dovecot)

Essas opções podem oferecer funcionalidades adicionais, como filtragem avançada, mas exigem configuração extra.


4. Permissões

Como o arquivo .fetchmailrc contém senhas em texto claro, proteja-o adequadamente:

chmod 600 ~/.fetchmailrc
chown usuario:usuario ~/.fetchmailrc

5. Automação com cron

Para automatizar o processo de download de e-mails, use o cron:

Exemplo para rodar a cada 5 minutos:

*/5 * * * * /usr/bin/fetchmail -s -f /caminho/para/.fetchmailrc
  • -s silencia a saída para não poluir logs
  • -f indica o arquivo de configuração, caso não esteja no padrão

Edite o crontab com:

crontab -e

6. Integração com Postfix e Dovecot

O fetchmail entrega os e-mails para o Postfix via o comando sendmail (binário compatível). O Postfix então entrega os e-mails para os usuários locais, armazenando-os na mailbox ou maildir conforme configuração.

O Dovecot é o responsável pelo acesso IMAP/POP dessas mailboxes aos usuários finais.


7. Debug e logs

Para testar manualmente e obter saída detalhada:

fetchmail -v -f /caminho/para/.fetchmailrc

Para acompanhar logs do sistema:

tail -f /var/log/mail.log

Considerações finais

Fetchmail continua sendo uma solução estável e eficiente para integrar múltiplas contas remotas em um servidor local com Postfix e Dovecot. Sua simplicidade e compatibilidade o tornam uma excelente opção para ambientes Linux tradicionais.

Rolar para cima