Přejít na obsah

Nastavení cookies

Zvolte, které druhy cookies povolíte. Svou volbu můžete kdykoli změnit přes Nastavení cookies v dolní části každé stránky. Prohlášení o ochraně osobních údajů

Nezbytné

Vždy zapnuté

Potřebné pro přihlášení, uchování košíku a zapamatování vašich voleb. Jsou vždy zapnuté.

Které cookies?
  • weboke_sessie, weboke_klant, weboke_remember: vaše relace a trvalé přihlášení
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazení cen s DPH nebo bez DPH
  • wok_cookies: vaše volba cookies, 12 měsíců

Měří, která reklama vede k návštěvě nebo objednávce, abychom neplatili za reklamy, které nic nepřinášejí.

Které cookies?
  • Google Ads přes Google Tag Manager (_gcl_au, _gcl_aw), až 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: partner, který vás k nám doporučil (partnerský program), 60 dní

4,6

Země a jazyk

Každá země má vlastní web s cenami a DPH dané země.

Zobrazit

Jak fungují filtry

Modul 6: Automaticky: filtry a odpověď v nepřítomnosti · Doba čtení: 10 minut

Cíl lekce: Po této lekci dokážete vysvětlit, kde a kdy filtry běží, přečíst skript filtrů v jazyce Sieve a předpovědět, do které složky příchozí zpráva dorazí.

Klíčové pojmy: filtr, Sieve, ManageSieve, sada filtrů, pravidlo, podmínka, akce, implicitní uložení, stop, obsahuje, odpovídá, odpovídá výrazu

Filtry běží na serveru

Filtr třídí Vaši poštu automaticky: e-maily se slovem "factuur" (faktura) v předmětu do složky Facturen, newslettery do vlastní složky. Nejdůležitější je vědět, že toto třídění neprobíhá ve webmailu, ale na poštovním serveru, a to v okamžiku, kdy je zpráva doručena do Vaší schránky.

Z toho vyplývají tři věci:

  • Filtry fungují i tehdy, když je webmail zavřený. Váš notebook může být vypnutý. Telefon uvidí e-mail rovnou ve správné složce.
  • Filtry fungují pouze na novou poštu. E-maily, které už ve schránce máte, zůstanou tam, kde jsou. Pokud dnes vytvoříte filtr, starší zprávy přesunete sami.
  • Filtry platí pro jednu schránku. Každá schránka má své vlastní filtry. Chcete-li něco nastavit pro všechny schránky své domény, například zablokovat odesílatele, uděláte to v ovládacím panelu svého hostingu.

Filtry jsou napsány v jazyce Sieve, jednoduchém jazyce určeném speciálně pro filtrování pošty (RFC 5228). Poštovní server u WebOké používá Dovecot s Pigeonhole, implementací jazyka Sieve pro Dovecot. Webmail převede Vaše volby ve formuláři na skript Sieve a pošle jej na server protokolem ManageSieve (RFC 5804). Sieve psát nemusíte, ale kdo ho umí číst, přesně rozumí tomu, co jeho filtry dělají.

Sada filtrů, pravidla, podmínky a akce

Sada filtrů je celý skript: všechny filtry Vaší schránky v jednom souboru. Sad filtrů můžete mít více, ale aktivní je vždy jen jedna.

V sadě filtrů jsou uloženy filtry, ve webmailu se jim říká také pravidla. Každý filtr má:

  • název, který slouží jen Vám;
  • rozsah: zpráva musí splňovat všechna pravidla, jedno z pravidel, nebo filtr platí pro všechny zprávy;
  • jednu nebo více podmínek: kam se filtr dívá (předmět, odesílatel, jiná hlavička), jak porovnává a s jakým textem;
  • jednu nebo více akcí: co se stane, když jsou podmínky splněny.

Porovnávat lze třemi způsoby:

Ve webmailuV SieveVýznam
obsahuje:containstext se nachází kdekoli v hlavičce
odpovídá:ishlavička je přesně tento text
odpovídá výrazu:matchesvzor s * (žádný nebo více znaků) a ? (přesně jeden znak)

Velká a malá písmena nehrají ani v jednom z těchto tří případů roli. Sieve ve výchozím stavu porovnává podle pravidla i;ascii-casemap, které velká a malá písmena považuje za stejná. "factuur" tedy najde také "FACTUUR" a "Factuur".

Takto vypadá sada filtrů

Ve webmailu si můžete sadu filtrů zobrazit jako text přes Filtry > Akce > Upravit sadu pravidel. Příklad tak, jak jej webmail zapisuje:

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";
}

Řádek po řádku:

  • require ["fileinto"]; žádá server o rozšíření potřebné k přesunu do složky. Webmail tento řádek doplní nahoru sám, včetně všech rozšíření, která skript používá.
  • # rule:[Nieuwsbrieven] je komentář. Podle něj webmail rozpozná název Vašeho filtru. Server tento řádek přeskočí.
  • if exists "List-Id" je podmínka: zpráva má hlavičku List-Id. Mají ji newslettery a e-mailové konference (RFC 2919).
  • fileinto "Nieuwsbrieven"; přesune zprávu do složky Nieuwsbrieven (newslettery). Název složky je úplný název na serveru s tečkou jako oddělovačem (lekce 5.1). Složka pod Příchozí poštou se tedy jmenuje INBOX.Team.
  • stop; zastaví celý skript. Další filtry se už na tuto zprávu nedívají. Ve webmailu se tato akce jmenuje Zastavit pravidla.
  • if false # ... je vypnutý filtr. Pokud vypnete volbu Filtr aktivní, webmail změní podmínku na false: nikdy neplatí. Původní podmínka zůstane jako komentář, abyste ji později mohli znovu zapnout.
Sieve skript sady filtrů v Upravit sadu filtrů
Vaše filtry tak, jak je čte server: Sieve skript

Shora dolů

Server čte skript shora dolů a prochází každý filtr. Přitom platí tři pravidla.

1. Bez akce zůstane zpráva v Příchozí poště. Sieve zná implicitní uložení (implicit keep, RFC 5228, oddíl 2.10.2): pokud žádný filtr nic neudělá, zpráva normálně dorazí do Příchozí pošty.

2. Po přesunu už zpráva v Příchozí poště není. Akce fileinto implicitní uložení vypne. Zpráva skončí ve zvolené složce, a ne navíc v Příchozí poště. Pokud chcete obojí, použijte Zkopírovat zprávu do.

3. Bez stop se dívají i další filtry. Pokud stop chybí, server pokračuje dalším filtrem. Pokud odpovídá i ten, server provede i jeho akci. Dva přesuny do dvou složek znamenají, že zpráva skončí v obou složkách. S stop rozhoduje první odpovídající filtr.

Proto záleží na pořadí. Ve výše uvedeném příkladu je Nieuwsbrieven nad Facturen, a to se stop. Newsletter s předmětem "Je factuur" (Vaše faktura) proto skončí v Nieuwsbrieven, a ne ve Facturen. Pokud pořadí obrátíte, stejný newsletter skončí ve Facturen, protože tento filtr nemá stop a je teď první. Newsletter by pak byl dokonce v obou složkách. Nejkonkrétnější filtry proto umístěte nahoru a dejte jim stop.

Projít zprávu krok za krokem: takto to předpovíte

Vezměte zprávu a projděte skript tak, jak to dělá server:

  1. Začněte prvním filtrem. Je vypnutý (if false)? Přeskočte ho.
  2. Platí podmínka? Podívejte se přesně na hlavičku: subject je předmět, from odesílatel se jménem a adresou, to příjemce.
  3. Pokud ano: proveďte akce. Pokud je tam stop, jste hotovi.
  4. Pokud ne, nebo pokud chybí stop: přejděte k dalšímu filtru.
  5. Na konci: pokud žádný filtr zprávu nepřesunul ani nesmazal, je v Příchozí poště (INBOX).

S těmito pěti kroky přečtete jakýkoli skript, i když je dlouhý.

V praxi: takto to funguje ve webmailu

Filtry najdete v Nastavení > Filtry. Seznam zobrazuje Vaše filtry v pořadí, v jakém je server provádí; pořadí změníte přetažením. V nabídce Akce je položka Upravit sadu pravidel: tam skript uvidíte a upravíte jako text. Postup vytvoření nového filtru najdete v příručce k Roundcube v části Vytvoření filtru. V jiných webmailech to funguje podobně: Gmail má filtry, Outlook.com pravidla. Ty sice Sieve nepoužívají, ale i tam záleží na pořadí a na zastavení zpracování.

Shrnutí

  • Filtry běží na poštovním serveru při doručení, tedy i při zavřeném webmailu, a pouze na novou poštu.
  • Webmail zapisuje Vaše filtry jako skript Sieve (RFC 5228) a ukládá jej na server pomocí ManageSieve.
  • Obsahuje, odpovídá a odpovídá výrazu ve výchozím stavu nerozlišují velká a malá písmena.
  • Pokud žádný filtr nic neudělá, zpráva zůstane v Příchozí poště; po přesunu už v Příchozí poště není.
  • Filtry se provádějí shora dolů; stop ukončí skript, takže výsledek určuje pořadí.

Kvíz

1. Dnes vytvoříte filtr pro složku Facturen. Co se stane s fakturami, které už jsou v Příchozí poště?



2. Filtr s podmínkou "Předmět obsahuje factuur" dostane e-mail s předmětem "FACTUUR 118". Co se stane?



3. Co znamená if false # header :contains "from" "daan@example.com" v sadě filtrů?



4. Zpráva odpovídá prvnímu filtru (přesunout do Facturen, bez stop) i druhému (přesunout do Klanten). Kde skončí?



5. Kdy server uloží zprávu do Příchozí pošty?



Úkol

Úkol A6.1: Kam tato zpráva dorazí? Otevřete materiál filters-1.txt, sadu filtrů tak, jak ji zapisuje webmail, a berichten-1.txt s hlavičkami čtyř příchozích zpráv očíslovaných 1 až 4. Projděte každou zprávu podle pěti kroků z této lekce: shora dolů, vypnuté filtry přeskočit, sledovat stop. U každé zprávy vyplňte název složky, do které dorazí, přesně tak, jak je uveden ve skriptu; pokud zpráva skončí v Příchozí poště, vyplňte INBOX. Program porovná Vaše čtyři odpovědi s klíčem a u každé zprávy ukáže, který filtr rozhodl.

Úkol A6.1: Kam tato zpráva dorazí?

Soubor k tomuto úkolu: filters-1.txt, berichten-1.txt





Co vyplníte a co zjistíme, neukládáme. Váš prohlížeč si pamatuje Vaše odpovědi a to, zda jste úkol splnili. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol měli (téměř) správně; i to tam můžete odstranit.

Další čtení

Kde jsou uvedeny kroky ve webmailu, platí pro webmail WebOké; v jiných webmailech to funguje podobně.

Chvíli strpení…

Nastavení vašich domén

U každé domény nastavte jmenné servery, propojení s hostingem a to, kdo bude držitelem.

Načítání vašich domén…