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--mda
opção de fetchmail
executar 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 %F
e %T
como espaços reservados na linha de comando.
Primeiro, crie um mailsorter
script:
#!/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 fetchmail
os sinalizadores --all
e --keep
para garantir que você não exclua seu e-mail acidentalmente.