Hoppa till innehållet

Cookieinställningar

Välj vilka typer av cookies du tillåter. Du kan alltid ändra ditt val via Cookieinställningar längst ned på varje sida. Integritetspolicy

Nödvändiga

Alltid på

Behövs för att logga in, spara din varukorg och komma ihåg dina val. De är alltid på.

Vilka cookies?
  • weboke_sessie, weboke_klant, weboke_remember: din session och att du förblir inloggad
  • weboke_basket: din varukorg
  • wkBtwIncl: visa priser med eller utan moms
  • wok_cookies: ditt cookieval, 12 månader

Mäter vilken annons som leder till ett besök eller en beställning, så att vi inte betalar för annonser som inte ger något.

Vilka cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), upp till 90 dagar
  • OpenAI Ads, annonser i ChatGPT
  • wok_aff: via vilken partner du kom till oss (affiliateprogram), 60 dagar

4,6

Land och språk

Varje land har en egen webbplats med landets priser och moms.

Visa

Så fungerar filter

Modul 6: Automatiskt: filter och frånvaro · Lästid: 10 minuter

Lärandemål: Efter den här lektionen kan du förklara var och när filter körs, läsa ett filterskript i Sieve och förutsäga i vilken mapp ett inkommande meddelande hamnar.

Nyckelbegrepp: filter, Sieve, ManageSieve, filtergrupp, regel, villkor, åtgärd, implicit behållning, stop, innehåller, är lika med, matchar uttryck

Filter körs på servern

Ett filter sorterar din e-post automatiskt: mejl med "factuur" (faktura) i ämnet till mappen Facturen (Fakturor), nyhetsbrev till en egen mapp. Det viktigaste att veta: sorteringen sker inte i webbmejlen, utan på e-postservern, i samma ögonblick som ett meddelande levereras till din brevlåda.

Det får tre följder:

  • Filter fungerar även när webbmejlen är stängd. Din laptop kan vara avstängd. Telefonen ser mejlet direkt i rätt mapp.
  • Filter fungerar bara på ny e-post. Mejl som redan ligger i din brevlåda stannar där de är. Skapar du ett filter i dag flyttar du de gamla meddelandena själv.
  • Filter gäller för en brevlåda. Varje brevlåda har sina egna filter. Vill du ordna något för alla brevlådor på din domän, till exempel blockera en avsändare, gör du det i kontrollpanelen för ditt webbhotell.

Filtren är skrivna i Sieve, ett enkelt språk speciellt för att filtrera e-post (RFC 5228). E-postservern hos WebOké använder Dovecot med Pigeonhole, Dovecots Sieve-implementation. Webbmejlen gör om dina val i formuläret till ett Sieve-skript och skickar det till servern via protokollet ManageSieve (RFC 5804). Du behöver inte skriva Sieve själv, men den som kan läsa det förstår exakt vad filtren gör.

Filtergrupp, regler, villkor och åtgärder

En filtergrupp är hela skriptet: alla filter för din brevlåda i en enda fil. Du kan ha flera filtergrupper, men det är alltid bara en som är aktiv.

I filtergruppen finns filtren, som i webbmejlen ibland också kallas regler. Varje filter har:

  • ett namn, bara för dig själv;
  • ett sökomfång: meddelandet måste uppfylla alla regler, en av reglerna, eller så gäller filtret för alla meddelanden;
  • ett eller flera villkor: var filtret tittar (ämne, avsändare, en annan rubrikrad), hur det jämför och med vilken text;
  • en eller flera åtgärder: vad som händer när villkoren stämmer.

Det finns tre sätt att jämföra:

I webbmejlenI SieveBetydelse
innehåller:containstexten finns någonstans i rubrikraden
är lika med:isrubrikraden är exakt den här texten
matchar uttryck:matchesmönster med * (noll eller fler tecken) och ? (exakt ett tecken)

Versaler och gemener spelar ingen roll i något av de tre fallen. Sieve jämför som standard med regeln i;ascii-casemap, som behandlar versaler och gemener lika. "factuur" hittar alltså också "FACTUUR" och "Factuur".

Så ser en filtergrupp ut

I webbmejlen kan du visa filtergruppen som text via Filter > Funktioner > Ändra filtergrupp. Ett exempel så som webbmejlen skriver det:

require ["fileinto"];
# rule:[Nieuwsbrieven]
if exists "List-Id"
{
	fileinto "Nieuwsbrieven";
	stop;
}
# rule:[Facturen]
if allof (header :contains "subject" "factuur")
{
	fileinto "Facturen";
}
# rule:[Collega Daan]
if false # header :contains "from" "daan@example.com"
{
	fileinto "INBOX.Team";
}

Rad för rad:

  • require ["fileinto"]; ber servern om det tillägg som behövs för att flytta till en mapp. Webbmejlen lägger själv in detta överst, med alla tillägg som skriptet använder.
  • # rule:[Nieuwsbrieven] är en kommentar. Med den känner webbmejlen igen namnet på ditt filter. Servern hoppar över raden.
  • if exists "List-Id" är villkoret: meddelandet har en rubrikrad List-Id. Nyhetsbrev och e-postlistor har en sådan (RFC 2919).
  • fileinto "Nieuwsbrieven"; flyttar meddelandet till mappen Nieuwsbrieven (Nyhetsbrev). Mappnamnet är det fullständiga namnet på servern, med punkt som avgränsare (lektion 5.1). En mapp under Inkorg heter alltså INBOX.Team.
  • stop; stoppar hela skriptet. Efterföljande filter tittar inte längre på meddelandet. I webbmejlen heter åtgärden Avsluta filtrering.
  • if false # ... är ett inaktiverat filter. Stänger du av Filter aktiverat gör webbmejlen om villkoret till false: aldrig sant. Det gamla villkoret står kvar som kommentar, så att du kan slå på det igen senare.
Filtergruppens Sieve-skript i Redigera filtergrupp
Dina filter så som servern läser dem: ett Sieve-skript

Uppifrån och ned

Servern läser skriptet uppifrån och ned och går igenom varje filter. Då gäller tre regler.

1. Utan åtgärd stannar meddelandet i Inkorg. Sieve har implicit behållning (implicit keep, RFC 5228, avsnitt 2.10.2): gör inget filter något, hamnar meddelandet helt enkelt i Inkorg.

2. Efter en flytt ligger meddelandet inte också i Inkorg. En fileinto stänger av den implicita behållningen. Meddelandet hamnar i den valda mappen och inte dessutom i Inkorg. Vill du ha det på båda ställena, använd Kopiera meddelande till.

3. Utan stop tittar även efterföljande filter. Saknas stop fortsätter servern med nästa filter. Passar även det filtret, utför servern också den åtgärden. Två flyttar till två mappar betyder att meddelandet hamnar i båda mapparna. Med stop är det första passande filtret som avgör.

Därför spelar ordningen roll. I exemplet ovan står Nieuwsbrieven ovanför Facturen, med en stop. Ett nyhetsbrev med "Je factuur" i ämnet går alltså till Nieuwsbrieven och inte till Facturen. Vänder du på ordningen hamnar samma nyhetsbrev i Facturen, eftersom det filtret saknar stop och nu kommer först. Nyhetsbrevet skulle då till och med ligga i båda mapparna. Lägg därför de mest specifika filtren överst och ge dem en stop.

Gå igenom ett meddelande: så förutsäger du det

Ta ett meddelande och gå igenom skriptet så som servern gör:

  1. Börja vid det första filtret. Är det inaktiverat (if false)? Hoppa över det.
  2. Stämmer villkoret? Titta noga på rubrikraden: subject är ämnet, from avsändaren med namn och adress, to mottagaren.
  3. Om ja: utför åtgärderna. Står det stop är du klar.
  4. Om nej, eller om det saknas stop: gå till nästa filter.
  5. I slutet: har inget filter flyttat eller raderat meddelandet ligger det i Inkorg (INBOX).

Med de här fem stegen kan du läsa vilket skript som helst, även ett långt.

I praktiken: så fungerar det i webbmejlen

Filter hittar du under Inställningar > Filter. Listan visar dina filter i den ordning servern kör dem; du drar dem för att ändra ordningen. Under Funktioner finns Ändra filtergrupp: där ser och ändrar du skriptet som text. Stegen för ett nytt filter finns i Roundcube-handboken under Skapa ett filter. I andra webbmejltjänster fungerar det på liknande sätt: Gmail har filter, Outlook.com har regler. De använder inte Sieve, men även där gäller ordning och stopp.

Sammanfattning

  • Filter körs på e-postservern vid leveransen, alltså även när webbmejlen är stängd, och bara på ny e-post.
  • Webbmejlen skriver dina filter som ett Sieve-skript (RFC 5228) och lägger det på servern via ManageSieve.
  • Innehåller, är lika med och matchar uttryck skiljer som standard inte på versaler och gemener.
  • Gör inget filter något stannar meddelandet i Inkorg; efter en flytt ligger det inte också i Inkorg.
  • Filtren körs uppifrån och ned; stop avslutar skriptet, så ordningen avgör resultatet.

Quiz

1. Du skapar i dag ett filter för mappen Facturen. Vad händer med fakturorna som redan ligger i Inkorg?



2. Ett filter med "Ämne innehåller factuur" får ett mejl med ämnet "FACTUUR 118". Vad händer?



3. Vad betyder if false # header :contains "from" "daan@example.com" i en filtergrupp?



4. Ett meddelande passar det första filtret (flytta till Facturen, utan stop) och det andra (flytta till Klanten). Var hamnar det?



5. När sparar servern ett meddelande i Inkorg?



Uppgift

Uppgift A6.1: Var hamnar det här mejlet? Öppna materialet filters-1.txt, en filtergrupp så som webbmejlen skriver den, och berichten-1.txt, med rubrikraderna för fyra inkommande meddelanden, numrerade 1 till 4. Gå igenom varje meddelande enligt de fem stegen i den här lektionen: uppifrån och ned, hoppa över inaktiverade filter, håll koll på stop. Fyll i för varje meddelande namnet på mappen där det hamnar, exakt så som det står i skriptet; hamnar meddelandet i Inkorg fyller du i INBOX. Programmet jämför dina fyra svar med facit och visar för varje meddelande vilket filter som avgjorde.

Uppgift A6.1: Var hamnar det här mejlet?

Fil till den här uppgiften: filters-1.txt, berichten-1.txt





Det du fyller i och det vi hittar sparar vi inte. Din webbläsare kommer ihåg dina svar och om du klarade uppgiften. Är du inloggad sparar vi bara att du klarade uppgiften (nästan) i Mina kurser; där kan du också ta bort det.

Läs mer

Där steg i webbmejlen beskrivs gäller de för WebOkés webbmejl; i andra webbmejltjänster fungerar det på liknande sätt.

Ett ögonblick…

Ställ in dina domäner

Ställ in namnservrar, koppling till ditt webbhotell och vem som blir innehavare för varje domän.

Hämtar dina domäner…