Как загрузить все сообщения электронной почты с сервера POP3 в один текстовый файл с помощью mailx?

Как загрузить все сообщения электронной почты с сервера POP3 в один текстовый файл с помощью mailx?

Я хотел бы загрузить все электронные письма на моем старом почтовом сервере. Он использует POP3, и меня интересуют электронные письма в папках "Входящие" и "Отправленные". После загрузки всех сообщений я хотел бы создать скрипт, который перечислит все электронные письма между моим адресом электронной почты и одним определенным адресом электронной почты в хронологическом порядке в один текстовый файл.

Однако, сначала я думаю, что мне нужно загрузить все сообщения в один файл с заголовками, включая даты, а затем создать скрипт сортировки. Как к этому подойти?

Я использовал mailx в скриптах для отправки писем, но можно ли использовать mailx для загрузки всех писем с сервера POP3 в один файл?

решение1

Традиционный mailx не поддерживает IMAP или POP, но тот, что поставляется с Linux, поддерживает.

Для вашей конкретной проблемы я рекомендую использовать fetchmailвместо этого. Вы можете использовать--mdaвозможность выполнения fetchmailскрипта по вашему выбору для каждого загруженного сообщения. Он даже может передавать адреса From и To в качестве параметров вашему скрипту, если вы используете %Fи %Tв качестве заполнителей в командной строке.

Сначала создайте 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

Тогда бегиfetchmail -u myname popserver.example.com --mda './mailsorter /tmp/mbox %F %T'

При тестировании этого решения установите fetchmailфлаги --allи --keep, чтобы убедиться, что вы случайно не удалите свою почту.

Связанный контент