[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Mails per IMAP auf dem Server löschen



Hallo Kurt!

Kurt Schwarz schrieb am Donnerstag, den 06. März 2008:

> Christian Brabandt schrieb:
> >archivemail

> Ehrlich gesagt, ich verstehe Bahnhof. Zug längst abgefahren.
> Kannst du mir PM helfen?

Da das jetzt auch über die List kam, antworte ich hier. So haben auch
später andere auch was davon.

Prinzipiell ist es ziemlich einfach. Du rufst archivemail nach
folgendem Muster auf:
,----
| Usage: archivemail [options] mailbox [mailbox...]
`----

Also archivemail und dann die Mailbox. Die Mailbox kann dabei eine
lokale Datei sein (im mbox, mh oder Maildir Format) oder eben eine IMAP-Box. 
Eine IMAP-Mailbox wird nach dem Muster
imap://benutzer:passwort@servername/Folder angegeben. (Wenn du Das
Passwort wegläßt, wirst du nach dem Passwort gefragt).

Ohne weitere Argumente werden alle Mails, die älter als 180 Tage sind
aus dieser Mailbox in eine lokale Datei geschrieben und mit gzip
komprimiert.

Du willst aber löschen, ja? Also sag archivemail, dass du löschen
willst. Dafür gibt es den Parameter --delete. Und dann willst du alle
Mails löschen, die älter als 1 Tag sind (der Einfachheit halber. Die
Etch version versteht noch nicht alle Mails, also älter als 0 Tage).
Dafür gibt es den Parameter --days=<AnzahlTage>

Da haben wir also bereits:

archivemail --days=1 --delete imap://benutzer:passwort@server/Folder

Nun möchtest Du eventuell nicht, dass jeder in der Prozessliste Deines
Rechners das Passwort für dein IMAP-Server auslesen kann. Also
schreibst du das Passwort in eine geheime Datei und sagst archivemail,
es soll das Passwort aus dieser Datei lesen:

archivemail --pwfile=${HOME}/.imap_password --days=1 --delete
imap://benutzer@server/Folder

So das war es eigentlich schon. Weitere wichtige Optionen sind
eventuell noch:
--preserve-unread   # ungelesene Nachrichten nicht archivieren/löschen
--include-flagged   # auch geflagged Nachrichten archivieren/löschen
--dry-run           # Nur testen, macht nichts.
--size=<größe>      # Nur Nachrichten archivieren/löschen, die größer
                      sind als <größe>
--no-compress       # nicht komprimieren

Zum Testen also immer die Option --dry-run angeben! Wenn Du
verschachtelte Ordner angeben willst, mußt du den Imap-Seperator
angeben. Dieser ist abhängig vom verwendeten IMAP-Server, meistens
jedoch '.' oder '/'. Im Zweifelsfall geht probieren über studieren ob 
imap://user@server/INBOX.Ordner1 oder imap://userserver/INBOX/Ordner1
funktioniert.

Ich glaube ab Version 0.7.1 (in Etch ist 0.7.0) wird versucht den
IMAP-Seperator zu erkennen und archivemail kann auch endlich die "~"
zum Homedirectory auflösen. Außerdem ist der Code zum Erkennen der
Nachrichten-Flags für IMAP ziemlich kaputt in etch. Auch das ist in
0.7.1 gefixed und man hat endlich die Möglichkeit mit --copy
Nachrichten archivieren zu lassen, aber nicht zu löschen. Das ist auch
sehr gut zum Testen ;)

Ansonsten passiert aber nicht mehr wirklich viel mit archivemail. Man
könnte sagen, die Entwicklung ist ziemlich tot.

Grüße
Christian
-- 
hundred-and-one symptoms of being an internet addict:
78. You find yourself dialing IP numbers on the phone.


Reply to: