Saltar para o conteúdo

Guia do Linux/Iniciante+Intermediário/Conectando seu computador a Internet/Recebimento de E-Mails através do fetchmail

Origem: Wikilivros, livros abertos por um mundo aberto.

Recebimento de E-Mails através do fetchmail

[editar | editar código-fonte]

É o programa mais tradicional no recebimento de mensagens através dos serviços pop3, imap, pop2, etc. no GNU/Linux. Ele pega as mensagens de seu servidor pop3 e as entrega ao MDA local ou nos arquivos de e-mails dos usuários do sistema em /var/mail

Todo o funcionamento do fetchmail é controlado pelo arquivo ~/.fetchmailrc. Segue abaixo um modelo padrão deste arquivo:


      poll pop3.seuprovedor.com.br protocol pop3
        user gleydson password sua_senha keep fetchall is gleydson here

Este arquivo é lido pelo fetchmail na ordem que foi escrito. Veja a explicação abaixo sobre o arquivo exemplo:

  • A palavra poll especifica o servidor de onde suas mensagens serão baixadas, o servidor especificado no exemplo é pop3.seuprovedor.com.bt. A palavra skip pode ser especificada, mas as mensagens no servidor especificado por skip somente serão baixadas caso o nome do servidor de mensagens for especificado através da linha de comando do fetchmail.
  • protocol é o protocolo que será usado para a transferência de mensagens do servidor. O fetchmail utilizará a auto-detecção de protocolo caso este não seja especificado.
  • user define o nome do usuário no servidor pop3.seuprovedor.com.br, que no exemplo acima é gleydson.
  • password define a senha do usuário gleydson (acima), especificada como sua_senha no exemplo.
  • keep é opcional e serve para não apagar as mensagens do servidor após baixa-las (útil para testes e acesso a uma única conta de e-mail através de vários locais, como na empresa e sua casa por exemplo).
  • fetchall baixa todas as mensagens do provedor marcadas como lidas e não lidas.
  • is gleydson here é um modo de especificar que as mensagens obtidas de pop3.seuprovedor.com.br do usuário gleydson com a senha sua_senha serão entregues para o usuário local gleydson no diretório /var/mail/gleydson.

As palavras is e here são completamente ignoradas pelo fetchmail, servem somente para dar um tom de linguagem natural na configuração do programa e da mesma forma facilitar a compreensão da configuração.

Se possuir várias contas no servidor pop3.seuprovedor.com.br, não é necessário repetir toda a configuração para cada conta, ao invés disso especifique somente os outros usuários do mesmo servidor:


     poll pop3.seuprovedor.com.br protocol pop3
      user gleydson password sua_senha keep fetchall is gleydson here
      user conta2 password sua_senha2 fetchall is gleydson here
      user conta3 password sua_senha3 fetchall is gleydson here

Note que todos os e-mails das contas gleydson, conta2 e conta3 do servidor de mensagens pop3.seuprovedor.com.br são entregues ao usuário local gleydson (arquivo /var/mail/gleydson).

Agora você pode usar um programa MUA como o mutt ou pine para ler localmente as mensagens. O armazenamento de mensagens no diretório /var/mail é preferido pois permite a utilização de programas de notificação de novos e-mais como o comsat, mailleds, biff, etc.

Também é possí­vel utilizar um processador de mensagens ao invés do MTA para a entrega de mensagens. O programa procmail é um exemplo de processador de mensagens rápido e funcional que pode separar as mensagens em arquivos de acordo com sua origem, destino, assunto, enviar respostas automáticas, listas de discussão, envio de arquivos através de requisição, etc. Veja [#s-inter-procmail Processamento de mensagens através do procmail, Seção 28.3.1] para detalhes.

Para mais detalhes sobre outras opções especí­ficas de outros protocolos, checagem de mensagens, criptografia, etc, veja a página de manual do fetchmail.

Processamento de mensagens através do procmail

[editar | editar código-fonte]

O processamento de mensagens pode ser usado para inúmeras finalidades, dentre elas a mais comum é separar uma mensagem em arquivos/diretórios de acordo com sua origem, prioridade, assuntos, destinatário, conteúdo, etc., programar auto-respostas, programa de férias, servidor de arquivos, listas de discussão, etc.

O procmail é um programa que reúne estas funções e permitem muito mais, dependendo da habilidades e conhecimento das ferramentas GNU/Linux para saber integra-las corretamente. Toda a operação do procmail é controlada pelo arquivo /etc/procmailrc e ~/.procmailrc. Abaixo um modelo do arquivo ~/.procmailrc usado para enviar todas as mensagens contendo a palavra GNU/Linux no assunto para o arquivo mensagens-linux:


     PATH=/usr/bin:/bin:/usr/local/bin:
     MAILDIR=$HOME/Mail
     DEFAULT=$MAILDIR/mbox
     LOGFILE=$MAILDIR/log

     :0:
     * ^Subject:.*Linux
     mensagens-linux

A variável de ambiente MAILDIR especifica o diretório que serão armazenadas as mensagens e logs das operações do procmail. A variável DEFAULT especifica a caixa de correio padrão onde todas as mensagens que não se encaixam nas descrições do filtro do procmailrc serão enviadas. A variável LOGFILE especifica o arquivo que registrará todas as operações realizadas durante o processamento de mensagens do procmail.

O arquivo mensagens-linux é criado dentro do diretório especificado por MAILDIR.

Para que o procmail entre em ação toda vez que as mensagens forem baixadas via fetchmail, é preciso modificar o arquivo .fechmailrc e incluir a linha mda /usr/bin/procmail -d %T no final do arquivo e retirar as linhas is [usuáriolocal] here para que o processamento das mensagens seja feita pelo MDA local (neste caso, o procmail).

Se quiser que o procmail seja executado pelo MDA local, basta criar um arquivo ~/.forward no diretório do usuário e incluir a linha exec /usr/bin/procmail (note que em algumas implementações do exim, o procmail é executado automaticamente caso um arquivo ~/.procmailrc seja encontrado, caso contrário será necessário adicionar a linha "/usr/bin/procmail" ao arquivo ~/.forward (somente exim).

Para mais detalhes, veja a página de manual do procmail, procmailrc e HOWTOs relacionados com e-mails no GNU/Linux.