Mit imapfilter eingehende E-Mails verschieben — aber erst nach der Lektüre

In einem anderen Blog-Artikel habe ich vor einiger Zeit beschrieben, wie ich mich mittels imapfilter von den Filterregeln meiner Mailserverbetreiber losgelöst habe. Sollte ich mich jemals von der cyon GmbH abwenden, müsste ich die Filterregeln beim neuen Anbieter — falls überhaupt möglich — nicht erneut umständlich über eine Web-Oberfläche einprogrammieren.

In der Zwischenzeit habe ich realisiert, dass nachfolgender Befehl optimal ist, um Nachrichten automatisiert in der IMAP-Ordnerstruktur abzulegen — aber erst, nachdem ich die Nachrichten auch wirklich gelesen habe:

messages = mbox.INBOX:contain_from('email@domain.tld') * mbox.INBOX:is_seen()
messages:move_messages(mbox['IMAP-Folder'])

Der erste Befehl auf der ersten Zeile wählt E-Mails eines bestimmten Absenders aus. Das Asterisk („*“) bedeutet „AND“, während der zweite Teil des Ausdrucks die Bedingung macht, dass die E-mail-Nachricht als gelesen markiert ist.

Ich verwende einen solchen Filter beispielsweise, um Kalendereinladungen abzulegen, sobald ich diese bestätigt habe.