Da ich seit kurzem Emacs verwende um meine Texte und Code zu erstellen, möchte ich auch gerne Emails damit ansehen. Dazu habe ich mir Gnus angesehen. Gnus ist ein Message-Reader, d.h. egal ob man Nachrichten von einem NNTP-Server oder von einer Mailbox holt, Gnus verwaltet diese gleich und macht dabei keinen Unterschied.
Anders als andere Message Readers (MUA - Message User Agents) löscht Gnus keine Nachrichten standardmäßig, außer wenn man ihn auffordert dies zu tun. Nun möchte ich aber nicht immer alle meine Nachrichten in meiner Inbox haben und deswegen habe ich Gnus so konfiguriert, das er nach Ablauf einer bestimmten Zeit, Nachrichten archiviert.
Dazu muß man die Nachrichten als expired markieren. Das kann man mit der Taste E in der Summary-Übersicht machen. Das ist aber sehr umständlich wenn man das mit jeder Nachricht machen muß. Dazu verwende ich folgende Einstellung
(setq gnus-auto-expirable-newsgroups "lists\\|inbox")
Hier wird definiert das in den beiden Gruppen 'lists' und 'inbox' automatisch alle Nachrichten als expired markiert werden. Nun ist das schön aber man kann damit noch nicht wirklich viel anfangen, denn Gnus löscht oder verschiebt diese Nachrichten standardmäßig nach 7 Tagen. Hier kann man wieder pro Gruppe einstellen wann diese Nachrichten gelöscht oder verschoben werden
(setq nnmail-expiry-wait-function (lambda (group) (cond ((string= group "lists") 'immediate) (t 40))))
Hier werden alle Nachrichten die in der Gruppe 'lists' sich befinden sofort nachdem die Gruppe verlassen wurde gelöscht und alle anderen Nachrichten in anderen Gruppen erst nach 40 Tagen.
Zusätzlich möchte man vielleicht auch noch steuern wohin diese Nachrichten, die als expiry markiert sind, wandern. Ich würde gerne alle Nachrichten von der Gruppe inbox in das Archiv mail-%Y und alle gesendeten Nachrichten in das Archiv sent-%Y verschieben. Alle andern sollen in den Kübel wandern. Folgende Konfiguration führt dies durch
(defun my-fancy-expiry (group) (let* ((target (cond ((equal group "inbox") "nnml+archive:mail-%Y") ((equal group "sent") "nnml+archive:sent-%Y") (t "nnml+archive:trash"))) (nnmail-fancy-expiry-targets `(("from" ".*" , target)))) (nnmail-fancy-expiry-target group))) (setq nnmail-expiry-target 'my-fancy-expiry)
Der String '%Y' wird durch das aktuelle Jahr ersetzt. Hier wird definiert das alle Nachrichten die von ".*" kommen und in der Gruppe 'inbox' sich befinden nach Ablauf der expiry-time (40 Tage) in das Archiv mail-%Y wandern. In der Variable nnmail-expiry-target kann man eine Funktion angeben die immer dann ausgeführt werden soll, wenn der Expiryprozess gestartet wird. Dieser wird normalerweise aufgerufen wenn man eine Gruppe verläßt.
Nach dieser Konfiguration braucht man sich um nichts mehr kümmern und die Nachrichten werden automatisch nach einer bestimmten Zeit verschoben.
Keine Kommentare:
Kommentar veröffentlichen