Gå direkte til indholdet

Cookieindstillinger

Vælg for hver type, hvilke cookies du tillader. Du kan altid ændre dit valg via Cookieindstillinger nederst på hver side. Privatlivspolitik

Nødvendige

Altid slået til

Nødvendige for at logge ind, gemme din kurv og huske dine valg. De er altid slået til.

Hvilke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: din session og at forblive logget ind
  • weboke_basket: din kurv
  • wkBtwIncl: vise priser med eller uden moms
  • wok_cookies: dit cookievalg, 12 måneder

Måler, hvilken annonce der fører til et besøg eller en bestilling, så vi ikke betaler for annoncer, der ikke virker.

Hvilke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), op til 90 dage
  • OpenAI Ads, annoncer i ChatGPT
  • wok_aff: hvilken partner der henviste dig til os (affiliateprogram), 60 dage

4,6

Land og sprog

Hvert land har sin egen side med landets priser og moms.

Se

Sådan fungerer filtre

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

Læringsmål: Efter denne lektion kan du forklare, hvor og hvornår filtre kører, læse et filterscript i Sieve og forudsige, hvilken mappe en indgående besked ender i.

Centrale begreber: filter, Sieve, ManageSieve, filtersæt, regel, betingelse, handling, implicit gem, stop, indeholder, er ens med, matcher udtryk

Filtre kører på serveren

Et filter sorterer din mail automatisk: mail med "faktura" i emnet til mappen Fakturaer, nyhedsbreve til en mappe for sig. Det vigtigste at vide: sorteringen sker ikke i webmailen, men på mailserveren, i det øjeblik en besked bliver leveret til din mailboks.

Det betyder tre ting:

  • Filtre virker, også når webmailen er lukket. Din bærbare må gerne være slukket. Telefonen ser mailen med det samme i den rigtige mappe.
  • Filtre virker kun på ny mail. Mail, der allerede ligger i din mailboks, bliver, hvor den er. Laver du et filter i dag, flytter du selv de gamle beskeder.
  • Filtre gælder for én mailboks. Hver mailboks har sine egne filtre. Vil du ordne noget for alle mailbokse på dit domæne, fx blokere en afsender, gør du det i kontrolpanelet til dit webhotel.

Filtrene er skrevet i Sieve, et enkelt sprog lavet specielt til at filtrere mail (RFC 5228). Mailserveren hos WebOké bruger Dovecot med Pigeonhole, Dovecots udgave af Sieve. Webmailen omsætter dine valg i formularen til et Sieve-script og sender det til serveren via protokollen ManageSieve (RFC 5804). Du behøver ikke skrive Sieve selv, men kan du læse det, forstår du præcis, hvad dine filtre gør.

Filtersæt, regler, betingelser og handlinger

Et filtersæt er hele scriptet: alle filtre i din mailboks samlet i én fil. Du kan have flere filtersæt, men der er altid kun ét aktivt.

I filtersættet ligger filtrene, som webmailen også kalder regler. Hvert filter har:

  • et navn, kun til dig selv;
  • et omfang: beskeden skal opfylde alle regler, én af reglerne, eller filteret gælder for alle meddelelser;
  • en eller flere betingelser: hvor kigger filteret (emne, afsender, en anden header), hvordan sammenligner det, og med hvilken tekst;
  • en eller flere handlinger: hvad sker der, når betingelserne er opfyldt.

Der er tre måder at sammenligne på:

I webmailenI SieveBetydning
indeholder:containsteksten står et sted i headeren
er ens med:isheaderen er præcis denne tekst
matcher udtryk:matchesmønster med * (nul eller flere tegn) og ? (præcis ét tegn)

Store og små bogstaver betyder ikke noget i nogen af de tre. Sieve sammenligner som standard med reglen i;ascii-casemap, der behandler store og små bogstaver ens. "faktura" finder altså også "FAKTURA" og "Faktura".

Sådan ser et filtersæt ud

I webmailen kan du se filtersættet som tekst under Filtre > Handlinger > Rediger filtersæt. Et eksempel, som webmailen skriver det:

require ["fileinto"];
# rule:[Nyhedsbreve]
if exists "List-Id"
{
	fileinto "Nyhedsbreve";
	stop;
}
# rule:[Fakturaer]
if allof (header :contains "subject" "faktura")
{
	fileinto "Fakturaer";
}
# rule:[Kollega Mads]
if false # header :contains "from" "mads@example.com"
{
	fileinto "INBOX.Team";
}

Linje for linje:

  • require ["fileinto"]; beder serveren om den udvidelse, der skal til for at flytte til en mappe. Webmailen sætter selv linjen øverst, med alle de udvidelser, scriptet bruger.
  • # rule:[Nyhedsbreve] er en kommentar. Den bruger webmailen til at genkende navnet på dit filter. Serveren springer linjen over.
  • if exists "List-Id" er betingelsen: beskeden har en List-Id-header. Det har nyhedsbreve og mailinglister (RFC 2919).
  • fileinto "Nyhedsbreve"; flytter beskeden til mappen Nyhedsbreve. Mappenavnet er det fulde navn på serveren, med punktum som skilletegn (lektion 5.1). En mappe under Indbakke hedder altså INBOX.Team.
  • stop; stopper hele scriptet. De næste filtre kigger ikke længere på beskeden. I webmailen hedder handlingen Stop behandling af regler.
  • if false # ... er et deaktiveret filter. Slår du Filter aktiveret fra, gør webmailen betingelsen til false: aldrig sand. Den gamle betingelse bliver stående som kommentar, så du kan slå den til igen senere.
Filtersættets Sieve-script i Rediger filtersæt
Dine filtre, sådan som serveren læser dem: et Sieve-script

Oppefra og ned

Serveren læser scriptet oppefra og ned og ser på hvert filter. Her gælder tre regler.

1. Uden handling bliver beskeden i Indbakke. Sieve har implicit gem (implicit keep, RFC 5228, afsnit 2.10.2): gør intet filter noget, havner beskeden helt almindeligt i Indbakke.

2. Efter en flytning ligger beskeden ikke også i Indbakke. En fileinto slår implicit gem fra. Beskeden kommer i den valgte mappe og ikke også i Indbakke. Vil du have begge dele, så brug Kopier besked til.

3. Uden stop kigger de næste filtre også. Mangler stop, fortsætter serveren med næste filter. Passer det filter også, udfører serveren også den handling. To flytninger til to mapper betyder, at beskeden kommer i begge mapper. Med stop er det det første filter, der passer, som bestemmer.

Derfor betyder rækkefølgen noget. I eksemplet ovenfor står Nyhedsbreve over Fakturaer, med et stop. Et nyhedsbrev med "Din faktura" i emnet går altså til Nyhedsbreve og ikke til Fakturaer. Vender du rækkefølgen om, havner det samme nyhedsbrev i Fakturaer, fordi det filter ikke har noget stop og nu kommer først. Nyhedsbrevet ville så endda ligge i begge mapper. Sæt derfor de mest specifikke filtre øverst, og giv dem et stop.

Opret et filter i webmailen 1:08

Gå en besked igennem: sådan forudsiger du det

Tag en besked, og gå scriptet igennem, som serveren gør:

  1. Start ved første filter. Er det deaktiveret (if false)? Spring det over.
  2. Er betingelsen opfyldt? Se nøje på headeren: subject er emnet, from afsenderen med navn og adresse, to modtageren.
  3. Hvis ja: udfør handlingerne. Står der stop, er du færdig.
  4. Hvis nej, eller der ikke er noget stop: gå videre til næste filter.
  5. Til sidst: har intet filter flyttet eller slettet beskeden, ligger den i Indbakke (INBOX).

Med de fem trin kan du læse ethvert script, også et langt.

I praksis: sådan virker det i webmailen

Filtre finder du under Indstillinger > Filtre. Listen viser dine filtre i den rækkefølge, serveren udfører dem; du trækker dem for at ændre rækkefølgen. Under Handlinger finder du Rediger filtersæt: her ser og ændrer du scriptet som tekst. Trinene til et nyt filter står i Roundcube-vejledningen under Opret et filter. I anden webmail virker det på samme måde: Gmail har filtre, Outlook.com har regler. De bruger ikke Sieve, men også der gælder rækkefølge og stop.

Opsummering

  • Filtre kører på mailserveren ved levering, altså også når webmailen er lukket, og kun på ny mail.
  • Webmailen skriver dine filtre som et Sieve-script (RFC 5228) og lægger det på serveren via ManageSieve.
  • Indeholder, er ens med og matcher udtryk skelner som standard ikke mellem store og små bogstaver.
  • Gør intet filter noget, bliver beskeden i Indbakke; efter en flytning ligger den ikke også i Indbakke.
  • Filtre kører oppefra og ned; stop afslutter scriptet, så rækkefølgen afgør resultatet.

Quiz

1. Du laver i dag et filter til mappen Fakturaer. Hvad sker der med de fakturaer, der allerede ligger i Indbakke?



2. Et filter med "Emne indeholder faktura" får en mail med emnet "FAKTURA 118". Hvad sker der?



3. Hvad betyder if false # header :contains "from" "mads@example.com" i et filtersæt?



4. En besked passer til det første filter (flyt til Fakturaer, uden stop) og til det andet (flyt til Kunder). Hvor ender den?



5. Hvornår gemmer serveren en besked i Indbakke?



Opgave

Opgave A6.1: Hvor ender denne mail? Åbn materialet filters-1.txt, et filtersæt som webmailen skriver det, og berichten-1.txt, med headerne fra fire indgående beskeder, nummereret 1 til 4. Gå hver besked igennem efter de fem trin fra denne lektion: oppefra og ned, spring deaktiverede filtre over, hold øje med stop. Skriv for hver besked navnet på den mappe, den ender i, præcis som det står i scriptet; ender beskeden i Indbakke, skriv så INBOX. Programmet sammenligner dine fire svar med facitlisten og viser for hver besked, hvilket filter der var afgørende.

Opgave A6.1: Hvor ender denne mail?

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





Det, du udfylder, og hvad vi finder, gemmer vi ikke. Din browser husker dine svar, og om du har bestået opgaven. Er du logget ind, gemmer vi kun, at du (næsten) bestod opgaven, i Mine kurser; der kan du også slette det.

Læs videre

Hvor der står trin i webmailen, gælder de for webmailen hos WebOké; i anden webmail virker det på samme måde.

Et øjeblik…

Opsæt dine domæner

Angiv for hvert domæne navneserverne, tilknytningen til din hosting, og hvem der bliver ejer.

Indlæser dine domæner…