Kom igång med IMAPFilter

För några dagarsen hittade jag det utmärkta programmet Imapfilter. Detta lilla program filtrerar mailboxen på en IMAP server efter några enkla regler man kan göra själv. Jag vill ha min inbox filtrerad från en server (min fil server som står hemma) så att jag bara ser det viktigaste mailen på min iPhone eller andra mail klienter som inte har en vettig filter funktion.

Här är en liten introduktion till IMAPFilter och reglerna som ska skrivas i LUA kod.

Vi börjar med att installera programmet, i Ubuntu skriver du bara.

sudo apt-get install imapfilter

Kör sen programmet med syntax -v så skapas katalogen för config filen.

imapfilter -v

Nu ska du ha en .imapfilter katalog i din hemkatalog.

cd .imapfilter

Om det inte finns en config.lua fil i den katalogen skapa en med valfri texteditor, jag kör vi på min server.

vi config.lua

Nu ska vi redigera config filen och göra ett enkelt filter på en mailbox. Högst upp i filen skriver vi.

options.timeout = 60
options.subscribe = true

myworld = IMAP {
        server = 'mail.myworld.se',
        username = 'spam',
        password = 'supersecretpassword',
        ssl = 'ssl3'
        }

option.timeout säger till hur lång tid imapfilter ska försöka ansluta till mail servern. option.subscribe gör så att om en mapp skapas på mail servern så kan du använda den direkt. Dom andra raderna säger till hur vi ska ansluta till min mailserver. Sen kan vi hänvisa till den här anslutningen med myworld

Nu börjar det roliga, nu ska vi göra ett enkelt filter.

my_slask = myworld.INBOX:match_from('.*@nutshellmail.com')
myworld.INBOX:move_messages(inuse['Tmp'],my_slask)

Denna regel kollar i inboxen på kontot myworld efter brev från domänen @nutshellmail.com. Breven läggs i variabeln my_slask. Andra raden gör så att dom brev som hittades och finns i variabeln flyttas till en mapp som heter Tmp. Så lätt är det att skapa ett filter med lua i imapfilter.

Det går att göra så att imapfilter körs som en deamon men jag kör det hellre med cron. Så här ser min crontab ut.

*/5 6-20 * * * /usr/bin/imapfilter -l /home/henrik/.imapfilter/ifilter.log > /dev/null 2>&1
*/30 20-6 * * * /usr/bin/imapfilter -l /home/henrik/.imapfilter/ifilter.log > /dev/null 2>&1

Imapfilter körs var 5’e minut mellan kl 06:00 och 20:00. Mellan 20:00 och 06:00 körs det varje halvtimme. Under jobbtid och någon timme till vill jag ha mina mail sorterade rätt snabbt, kvällstid och på natten räcker det gott och väl med 2 ggr i timmen. Läs igenom manualen för att skapa lite fler filter.

Jag har en mapp där alla nyhetsbrev och andra massutskick hamnar. Alla mail äldre än 7 dagar markeras som läste och efter 14 dagar tas breven bort.