Como baixar todas as mensagens de email do servidor POP3 para um único arquivo de texto com mailx?

Como baixar todas as mensagens de email do servidor POP3 para um único arquivo de texto com mailx?

Gostaria de baixar todos os e-mails do meu antigo servidor de e-mail. Ele usa POP3 e estou interessado em e-mails nas pastas "Caixa de entrada" e "Enviados". Depois de baixar todas as mensagens, gostaria de criar um script que liste todos os e-mails entre meu endereço de e-mail e um determinado endereço de e-mail em ordem cronológica em um único arquivo de texto.

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

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?

Responder1

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

Para o seu problema específico, recomendo usar fetchmail. Você pode usar o--mdaopção de fetchmailexecutar um script de sua escolha para cada mensagem baixada. Ele pode até passar os endereços De e Para como parâmetros para o seu script se você usar %Fe %Tcomo espaços reservados na linha de comando.

Primeiro, crie um mailsorterscript:

#!/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

Então corrafetchmail -u myname popserver.example.com --mda './mailsorter /tmp/mbox %F %T'

Ao testar esta solução, forneça fetchmailos sinalizadores --alle --keeppara garantir que você não exclua seu e-mail acidentalmente.

informação relacionada