![Wie lade ich mit Mailx alle E-Mail-Nachrichten vom POP3-Server in eine einzige Textdatei herunter?](https://rvso.com/image/50607/Wie%20lade%20ich%20mit%20Mailx%20alle%20E-Mail-Nachrichten%20vom%20POP3-Server%20in%20eine%20einzige%20Textdatei%20herunter%3F.png)
Ich möchte alle E-Mails von meinem alten E-Mail-Server herunterladen. Er verwendet POP3 und ich interessiere mich für E-Mails in den Ordnern „Posteingang“ und „Gesendet“. Nachdem ich alle Nachrichten heruntergeladen habe, möchte ich ein Skript erstellen, das alle E-Mails zwischen meiner E-Mail-Adresse und einer bestimmten E-Mail-Adresse chronologisch in einer einzigen Textdatei auflistet.
Ich denke jedoch, dass ich zunächst alle Nachrichten in eine einzelne Datei mit Kopfzeilen und Datum herunterladen und dann ein Sortierskript erstellen muss. Wie gehe ich dabei vor?
Ich habe Mailx in Skripten zum Senden von E-Mails verwendet, aber ist es möglich, mit Mailx alle E-Mails vom POP3-Server in eine einzige Datei herunterzuladen?
Antwort1
Herkömmliches Mailx unterstützt weder IMAP noch POP, das mit Linux mitgelieferte Mailx jedoch schon.
Für Ihr spezielles Problem empfehle ich fetchmail
stattdessen die Verwendung von. Sie können die--mda
Option, fetchmail
für jede heruntergeladene Nachricht ein Skript Ihrer Wahl auszuführen. Es kann sogar die Absender- und Empfängeradressen als Parameter an Ihr Skript übergeben, wenn Sie %F
und %T
als Platzhalter in der Befehlszeile verwenden.
Erstellen Sie zunächst ein mailsorter
Skript:
#!/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
Dann rennefetchmail -u myname popserver.example.com --mda './mailsorter /tmp/mbox %F %T'
Geben Sie beim Testen dieser Lösung fetchmail
die Flags --all
und --keep
an, um sicherzustellen, dass Sie Ihre E-Mails nicht versehentlich löschen.