Я хотел бы загрузить все электронные письма на моем старом почтовом сервере. Он использует 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
, чтобы убедиться, что вы случайно не удалите свою почту.