Como baixar todas as mensagens de e-mail do servidor POP3 para um único arquivo de texto com o mailx?

5

Eu gostaria de baixar todos os e-mails no meu antigo servidor de e-mail. Ele usa POP3 e estou interessado em e-mails nas pastas "Caixa de entrada" e "Enviadas". Depois de ter baixado todas as mensagens, gostaria de fazer um script que lista todos os e-mails entre o meu endereço de e-mail e um endereço de e-mail em forma cronológica em um único arquivo de texto.

No entanto, a princípio, acho que preciso baixar todas as mensagens para um único arquivo com cabeçalhos, incluindo datas, e depois criar um script de classificação. Como abordar isso?

Eu usei o mailx em scripts para enviar e-mails, mas é possível usar o mailx para baixar todos os e-mails do servidor POP3 em um único arquivo?

    
por Martin 26.09.2013 / 22:07

1 resposta

3

O mailx tradicional não suporta IMAP ou POP, mas o que vem com o Linux faz.

Para o seu problema específico, recomendo usar fetchmail . Você pode usar a opção --mda para que fetchmail execute um script de sua escolha para cada um baixado mensagem. Ele pode até mesmo passar os endereços De e Para como parâmetros para seu script se você usar %F e %T como espaços reservados na linha de comando.

Primeiro, crie um script mailsorter :

#!/bin/sh

dest_mbox="$1"
from="$2"
to="$3"

case "$from-$to" in
  [email protected])
     echo "From $from  'date'" >> "$dest_mbox"
     cat >> "$dest_mbox"
     ;;
  *)
     cat > /dev/null
     ;;
esac

Em seguida, execute fetchmail -u myname popserver.example.com --mda './mailsorter /tmp/mbox %F %T'

Ao testar essa solução, forneça fetchmail as sinalizações --all e --keep para garantir que você não exclua seus e-mails acidentalmente.

    
por 30.09.2013 / 06:49