Gå til innholdet

Cookie-innstillinger

Velg hvilke typer cookies du tillater. Du kan når som helst endre valget via Cookie-innstillinger nederst på hver side. Personvernerklæring

Nødvendige

Alltid på

Trengs for å logge inn, beholde handlekurven og huske valgene dine. Disse er alltid på.

Hvilke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: økten din og at du forblir innlogget
  • weboke_basket: handlekurven din
  • wkBtwIncl: visning av priser med eller uten mva.
  • wok_cookies: cookievalget ditt, 12 måneder

Måler hvilken annonse som fører til et besøk eller en bestilling, slik at vi ikke betaler for annonser som ikke gir noe.

Hvilke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), opptil 90 dager
  • OpenAI Ads, annonser i ChatGPT
  • wok_aff: hvilken partner som henviste deg til oss (partnerprogram), 60 dager

4,6

Land og språk

Hvert land har sin egen nettside, med priser og mva. for det landet.

Vis

Slik fungerer filtre

Modul 6: Automatisk: filtre og fravær · Lesetid: 10 minutter

Læringsmål: Etter denne leksjonen kan du forklare hvor og når filtre kjører, lese et filterskript i Sieve og forutsi hvilken mappe en innkommende melding havner i.

Nøkkelbegreper: filter, Sieve, ManageSieve, filtersett, regel, betingelse, handling, implisitt lagring, stop, inneholder, er lik, treffer uttrykk

Filtre kjører på serveren

Et filter sorterer e-posten din automatisk: e-post med "factuur" i emnet til mappen Facturen, nyhetsbrev til en egen mappe. Det viktigste å vite: sorteringen skjer ikke i webmailen, men på e-postserveren, i det øyeblikket en melding leveres til postboksen din.

Det gir tre følger:

  • Filtre virker også når webmailen er lukket. Den bærbare PC-en kan være slått av. Telefonen ser e-posten med en gang i riktig mappe.
  • Filtre virker bare på ny e-post. E-post som allerede ligger i postboksen din, blir liggende der den er. Lager du et filter i dag, flytter du de gamle meldingene selv.
  • Filtre gjelder for én postboks. Hver postboks har sine egne filtre. Vil du ordne noe for alle postboksene på domenet ditt, for eksempel blokkere en avsender, gjør du det i kontrollpanelet til webhotellet ditt.

Filtrene er skrevet i Sieve, et enkelt språk laget spesielt for å filtrere e-post (RFC 5228). E-postserveren hos WebOké bruker Dovecot med Pigeonhole, Sieve-implementasjonen til Dovecot. Webmailen gjør valgene dine i skjemaet om til et Sieve-skript og sender det via protokollen ManageSieve (RFC 5804) til serveren. Du trenger ikke å skrive Sieve, men den som kan lese det, forstår nøyaktig hva filtrene gjør.

Filtersett, regler, betingelser og handlinger

Et filtersett er hele skriptet: alle filtrene i postboksen din i én fil. Du kan ha flere filtersett, men bare ett er aktivt om gangen.

I filtersettet ligger filtrene, som i webmailen også kalles regler. Hvert filter har:

  • et navn, bare for deg selv;
  • et omfang: meldingen må oppfylle alle reglene, én av reglene, eller filteret gjelder for alle meldinger;
  • én eller flere betingelser: hvor filteret ser (emne, avsender, en annen header), hvordan det sammenligner, og med hvilken tekst;
  • én eller flere handlinger: hva som skjer når betingelsene stemmer.

Det finnes tre måter å sammenligne på:

I webmailenI SieveBetydning
inneholder:containsteksten står et sted i headeren
er lik:isheaderen er nøyaktig denne teksten
treffer uttrykk:matchesmønster med * (null eller flere tegn) og ? (nøyaktig ett tegn)

Store og små bokstaver spiller ingen rolle for noen av de tre. Sieve sammenligner som standard med regelen i;ascii-casemap, som behandler store og små bokstaver likt. "factuur" finner altså også "FACTUUR" og "Factuur".

Slik ser et filtersett ut

I webmailen kan du se filtersettet som tekst via Filtre > Handlinger > Rediger filtersett. Et eksempel slik webmailen 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";
}

Linje for linje:

  • require ["fileinto"]; ber serveren om utvidelsen som trengs for å flytte til en mappe. Webmailen setter dette øverst selv, med alle utvidelsene skriptet bruker.
  • # rule:[Nieuwsbrieven] er en kommentar. Med den kjenner webmailen igjen navnet på filteret ditt. Serveren hopper over linjen.
  • if exists "List-Id" er betingelsen: meldingen har en List-Id-header. Nyhetsbrev og e-postlister har den (RFC 2919).
  • fileinto "Nieuwsbrieven"; flytter meldingen til mappen Nieuwsbrieven. Mappenavnet er hele navnet på serveren, med punktum som skilletegn (leksjon 5.1). En mappe under Innboks heter altså INBOX.Team.
  • stop; stopper hele skriptet. Senere filtre ser ikke lenger på denne meldingen. I webmailen heter denne handlingen Stopp evaluering av regler.
  • if false # ... er et deaktivert filter. Slår du av Filter aktivert, gjør webmailen betingelsen om til false: aldri sann. Den gamle betingelsen blir stående som kommentar, slik at du kan slå den på igjen senere.
Sieve-skriptet for filtersettet i Rediger filtersett
Filtrene dine slik serveren leser dem: et Sieve-skript

Ovenfra og ned

Serveren leser skriptet ovenfra og ned og ser på hvert filter. Tre regler gjelder.

1. Uten handling blir meldingen i Innboks. Sieve har implisitt lagring (implicit keep, RFC 5228, avsnitt 2.10.2): gjør ingen filtre noe, havner meldingen helt vanlig i Innboks.

2. Etter en flytting ligger meldingen ikke i tillegg i Innboks. En fileinto slår av den implisitte lagringen. Meldingen havner i den valgte mappen og ikke i tillegg i Innboks. Vil du ha begge deler, bruker du Kopier meldingen til.

3. Uten stop ser også de neste filtrene på meldingen. Mangler stop, går serveren videre til neste filter. Passer det filteret også, utfører serveren den handlingen også. To flyttinger til to mapper betyr at meldingen havner i begge mappene. Med stop er det første filteret som passer, som bestemmer.

Derfor har rekkefølgen betydning. I eksempelet over står Nieuwsbrieven over Facturen, med en stop. Et nyhetsbrev med "Je factuur" i emnet går altså til Nieuwsbrieven, og ikke til Facturen. Snur du rekkefølgen, havner det samme nyhetsbrevet i Facturen, for det filteret har ingen stop og kommer nå først. Nyhetsbrevet ville da til og med ligge i begge mappene. Sett derfor de mest spesifikke filtrene øverst og gi dem en stop.

Gå gjennom en melding: slik forutsier du resultatet

Ta en melding og gå gjennom skriptet slik serveren gjør:

  1. Begynn med det første filteret. Er det deaktivert (if false)? Hopp over det.
  2. Stemmer betingelsen? Se nøye på headeren: subject er emnet, from avsenderen med navn og adresse, to mottakeren.
  3. Hvis ja: utfør handlingene. Står det stop, er du ferdig.
  4. Hvis nei, eller ingen stop: gå til neste filter.
  5. Til slutt: har ingen filtre flyttet eller slettet meldingen, ligger den i Innboks (INBOX).

Med disse fem trinnene kan du lese ethvert skript, også når det er langt.

I praksis: slik fungerer det i webmailen

Filtrene finner du under Innstillinger > Filtre. Listen viser filtrene i den rekkefølgen serveren utfører dem; du drar dem for å endre rekkefølgen. Under Handlinger finner du Rediger filtersett: der ser og endrer du skriptet som tekst. Trinnene for et nytt filter står i Roundcube-håndboken under Lage et filter. I annen webmail fungerer det på lignende måte: Gmail har filtre, Outlook.com har regler. De bruker ikke Sieve, men også der gjelder rekkefølge og stopp.

Sammendrag

  • Filtre kjører på e-postserveren ved levering, altså også når webmailen er lukket, og bare på ny e-post.
  • Webmailen skriver filtrene dine som et Sieve-skript (RFC 5228) og legger det på serveren via ManageSieve.
  • Inneholder, er lik og treffer uttrykk skiller som standard ikke mellom store og små bokstaver.
  • Gjør ingen filtre noe, blir meldingen i Innboks; etter en flytting ligger den ikke i tillegg i Innboks.
  • Filtre kjøres ovenfra og ned; stop avslutter skriptet, så rekkefølgen bestemmer resultatet.

Quiz

1. Du lager i dag et filter for mappen Facturen. Hva skjer med fakturaene som allerede ligger i Innboks?



2. Et filter med "Emne inneholder factuur" får en e-post med emnet "FACTUUR 118". Hva skjer?



3. Hva betyr if false # header :contains "from" "daan@example.com" i et filtersett?



4. En melding passer til det første filteret (flytt til Facturen, uten stop) og til det andre (flytt til Klanten). Hvor havner den?



5. Når lagrer serveren en melding i Innboks?



Oppgave

Oppgave A6.1: Hvor havner denne e-posten? Åpne materialet filters-1.txt, et filtersett slik webmailen skriver det, og berichten-1.txt, med headerne til fire innkommende meldinger, nummerert 1 til 4. Gå gjennom hver melding etter de fem trinnene i denne leksjonen: ovenfra og ned, hopp over deaktiverte filtre, følg med på stop. Fyll inn for hver melding navnet på mappen den havner i, nøyaktig slik det står i skriptet; havner meldingen i Innboks, fyller du inn INBOX. Programmet sammenligner de fire svarene dine med fasiten og viser for hver melding hvilket filter som var avgjørende.

Oppgave A6.1: Hvor havner denne e-posten?

Fil til denne oppgaven: filters-1.txt, berichten-1.txt





Det du fyller inn, og det vi finner, lagrer vi ikke. Nettleseren din husker svarene dine og om du har bestått oppgaven. Er du logget inn, lagrer vi kun at du har (nesten) bestått oppgaven i Mine kurs; der kan du også slette det.

Les mer

Der det står trinn i webmailen, gjelder de for webmailen til WebOké; i annen webmail fungerer det på lignende måte.

Et øyeblikk …

Sett opp domenene dine

Ordne for hvert domene navnetjenerne, koblingen til hostingen din og hvem som blir innehaver.

Laster inn domenene dine…