E-Mail/Manuelle Konfiguration/Archivierung: Unterschied zwischen den Versionen
Bernd (Diskussion | Beiträge) |
Bernd (Diskussion | Beiträge) |
||
Zeile 29: | Zeile 29: | ||
# Alle Ordner finden: | # Alle Ordner finden: | ||
find "${MAILBOX}." -maxdepth 1 -type d -and -not \( -name tmp -or -name cur -or -name new -or -name courierimapkeywords -or -name courierimaphieracl -or -name . \) -printf "%f\0" | \ | find "${MAILBOX}." -maxdepth 1 -type d -and -not \( -name tmp -or -name cur -or -name new -or -name courierimapkeywords -or -name courierimaphieracl -or -name . \) -printf "%f\0" | \ | ||
xargs -0 -I FOLDER /usr/local/bin/cleanup-maildir -- | xargs -0 -I FOLDER /usr/local/bin/cleanup-maildir --trial-run -a "${DAYS}" -d 2 --archive-folder="${ARCHIVE}"FOLDER --folder-prefix="" --maildir-root=${MAILBOX} archive FOLDER | ||
Bitte ersetzen Sie in der letzten Zeile '''--trial-run''' durch '''--quiet''', wenn Sie sicher sind, dass die Archivierung die korrekten Ordnernamen benutzt. |
Aktuelle Version vom 31. August 2010, 08:32 Uhr
Ankommende E-Mails werden bei uns typischerweise in einer Mailbox vom Typ »Maildir« gespeichert. Dieses Mailbox-Format hat zwar bei der normalen Verwendung unschlagbare Vorteile, wird aber sichtbar langsamer wenn sich zu viele E-Mails in einem Verzeichnis befinden.
Typischerweise sollten sich nicht mehr als 5.000 E-Mails in einem Unterordner befinden, damit der IMAP-Server diese schnell auflisten kann.
Automatische Archivierung
Da man in der Regel seine E-Mails nicht löschen möchte, bietet es sich an, eine automatische Archivierung einzurichten. Hierfür haben wir das Programm cleanup-maildir in einer angepassten Version installiert.
Ganze Mailbox-Hierarchie archivieren
Bei einer Mailbox mit mehreren Unterordnern bietet es sich an, die gesamte Hierarchie in einer zweiten IMAP-Mailbox als Archiv nachzubilden. Damit werden die archivierten E-Mails nicht mehr innerhalb der Mailbox des täglichen Bedarfs gespeichert und verlangsamen den regulären Zugriff nicht. Da Sie bei uns mittels grep oder mutt auch direkt auf dem Server zugreifen können, ist eine Suche nach alten Nachrichten auch möglich ohne stets den gesamten Nachrichtenbestand in das E-Mail-Programm zu laden.
Vorbedingungen
In unserem Beispiel befindet sich die reguläre Mailbox in ~/mailbox/inbox/, was gleichzeitig auch der Pfad des IMAP-Kontos ist. Eine separate Mailbox unter ~/mailbox/attic/ ist als separates Postfach eingerichtet und soll das Archiv aufnehmen.
Die Archivierung soll so erfolgen, dass jeder Ordner der Original-Mailbox im Archiv um Unterordner für Jahr und Monat erweitert wird.
Script
Folgendes Script nutzt cleanup-maildir um eine gesamte Mailbox mit allen Unterverzeichnissen zu archivieren. Beachten Sie, dass die Zeilen sehr lang sind. Vor dem Zeilenumbruch befindet sich ein \, der dafür sorgt, dass der Zeilenumbruch ignoriert wird. Dies muss entweder exakt so beibehalten werden oder der \ muss zusammen mit dem Zeilenumbruch entfernt werden.
# Mit abschließendem / angeben! MAILBOX=~/mailbox/inbox/ ARCHIVE=~/mailbox/attic/ DAYS=90 # Alle Ordner finden: find "${MAILBOX}." -maxdepth 1 -type d -and -not \( -name tmp -or -name cur -or -name new -or -name courierimapkeywords -or -name courierimaphieracl -or -name . \) -printf "%f\0" | \ xargs -0 -I FOLDER /usr/local/bin/cleanup-maildir --trial-run -a "${DAYS}" -d 2 --archive-folder="${ARCHIVE}"FOLDER --folder-prefix="" --maildir-root=${MAILBOX} archive FOLDER
Bitte ersetzen Sie in der letzten Zeile --trial-run durch --quiet, wenn Sie sicher sind, dass die Archivierung die korrekten Ordnernamen benutzt.