Wie lade ich mit Mailx alle E-Mail-Nachrichten vom POP3-Server in eine einzige Textdatei herunter?

Wie lade ich mit Mailx alle E-Mail-Nachrichten vom POP3-Server in eine einzige Textdatei herunter?

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 fetchmailstattdessen die Verwendung von. Sie können die--mdaOption, fetchmailfü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 %Fund %Tals Platzhalter in der Befehlszeile verwenden.

Erstellen Sie zunächst ein mailsorterSkript:

#!/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 fetchmaildie Flags --allund --keepan, um sicherzustellen, dass Sie Ihre E-Mails nicht versehentlich löschen.

verwandte Informationen