abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 05:11 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy jednotlivých přednášek z letošního Installfestu.

    Ladislav Hagara | Komentářů: 0
    dnes 00:22 | Komunita

    Během akce Arduino Days 2026 byl publikován Arduino Open Source Report 2025 (pdf) a oznámeno 7 nových produktů kompatibilních s deskou UNO Q (Arduino USB-C Power Supply, USB-C Cable, USB-C Hub, UNO Media Carrier, UNO Breakout Carrier, Bug Hopper, Modulino LED Matrix).

    Ladislav Hagara | Komentářů: 0
    včera 20:22 | IT novinky

    Google v pátek spustil v Česku Vyhledávání Live. Tato novinka umožňuje lidem vést plynulou konverzaci s vyhledávačem v češtině. A to prostřednictvím hlasu, nebo prostřednictvím toho, na co ukážou svým fotoaparátem či kamerou v mobilu. Rozšíření této multimodální funkce je možné díky nasazení Gemini 3.1 Flash Live, nového hlasového a audio modelu, který je od základu vícejazyčný, takže umožňuje lidem po celém světě mluvit na vyhledávač přirozeně a v jazyce, který je jim nejbližší.

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | Zajímavý software

    Jsongrep je open-source nástroj, který efektivně prohledává JSON dokumenty (editovat je neumí). Kompiluje regulérní jazyk dotazu do podoby deterministického konečného automatu (DFA), díky čemuž prochází strom JSON dokumentu pouze jednou a je v tom tedy rychlejší než jiné nástroje jako jsou například jq, JMESPath nebo jql. Jsongrep je napsaný v programovacím jazyce Rust, zdrojový kód je dostupný na GitHubu.

    NUKE GAZA! 🎆 | Komentářů: 3
    28.3. 05:55 | Komunita

    O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2026. Na programu je celá řada zajímavých přednášek a workshopů. Vstup na konferenci je zcela zdarma, bez nutnosti registrace. Přednášky lze sledovat i online na YouTube.

    Ladislav Hagara | Komentářů: 10
    28.3. 05:22 | Komunita

    Mozilla a společnost Mila oznámily strategické partnerství za účelem rozvoje open source a suverénní AI. Cílem je ukázat, že open source AI může konkurovat uzavřeným systémům. Obě organizace chtějí posílit technologickou suverenitu a snížit závislost na hrstce velkých technologických firem.

    Ladislav Hagara | Komentářů: 4
    28.3. 04:00 | Humor

    Adam Rice předvedl, že pomocí DNS lze distribuovat a spustit kompletní hru DOOM. Rozdělil WAD soubory a binárky do téměř 2000 DNS záznamů v Cloudflare zóně (jeden TXT záznam v DNS může nést okolo 2000 znaků textu). Ty pak stáhl PowerShellem, dekomprimoval a spustil přímo v paměti počítače bez nutnosti zápisu na disk, což prakticky dokazuje, že DNS může sloužit jako distribuované úložiště dat a možný kanál pro načítání kódu. Repozitář projektu je na GitHubu.

    NUKE GAZA! 🎆 | Komentářů: 7
    27.3. 13:00 | Komunita

    Dnes a zítra probíhají Arduino Days 2026. Na programu je řada zajímavých přednášek. Sledovat je lze od 17:00 na YouTube. Zúčastnit se lze i lokálních akcí. Dnes v Poličce v městské knihovně a zítra v Praze na Matfyzu.

    Ladislav Hagara | Komentářů: 9
    27.3. 12:11 | Nová verze

    Byla vydána beta verze Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.04 LTS mělo vyjít 23. dubna 2026.

    Ladislav Hagara | Komentářů: 2
    27.3. 02:22 | Komunita Ladislav Hagara | Komentářů: 12
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (3%)
     (5%)
     (2%)
     (14%)
     (24%)
    Celkem 1183 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Stavíme poštovní server – 13 (doručovací agent)

    4. 2. 2010 | Lukáš Jelínek | Sítě | 22009×

    Jednou z činností vykonávaných poštovním serverem je finální doručování do schránek uživatelů. Protože na tuto činnost mohou být kladeny značné nároky, je často vhodné pro ni využít specializovanou službu, která doručování zajistí. Tato služba se označuje jako doručovací agent. Agent zatím zůstával skryt a nevyužit, nicméně právě v tento okamžik vstupuje na scénu.

    Obsah

    Doručování do schránek

    link

    Úspěšným završením pouti zprávy poštovním přenosovým řetězcem je její doručení do schránky příjemce. V některých případech se může zpráva „vrátit“ (přesněji řečeno „je odeslána systémová zpráva“) do schránky odesílatele. Ať tak či tak, pokud není zpráva po cestě zahozena nebo se nějakou chybou neztratí, skončí v nějaké cílové schránce.

    Zprávu lze do schránky buď jen „obyčejně doručit“, anebo s ní naložit nějakým složitějším způsobem. Co si lze představit pod tím složitějším způsobem? Například:

    • filtrace zpráv a jejich třídění do složek
    • přeposílání na jinou adresu
    • automatická odpověď
    • značkování a štítkování
    • uplatňování různých kvót
    • spouštění různých akcí
    • datová komprese
    • indexace pro rychlejší přístup a prohledávání

    Podle toho, do jaké míry je třeba realizovat takové úkoly, se volí způsob doručování, resp. služba, která ho bude zajišťovat. Všechny předchozí díly tohoto seriálu doručování prakticky vůbec neřešily – probíhalo totiž tak, že server prostě zprávu vložil do schránky, a to bylo vše. Nic složitějšího zatím ani nebylo potřeba.

    Dovecot LDA

    link

    Ono zmíněné obyčejné doručení zajišťovaly v rámci programu Postfix služby local (pro schránky systémových uživatelů) a virtual (pro schránky virtuálních uživatelů). Postfix toho při vhodném nakonfigurování (a hlavně ve spolupráci s dalšími programy či skripty) dokáže více, nicméně proč ho „lámat přes koleno“, když je to zbytečné?

    Ke složitějším úkolům při doručování se používají různé specializované programy. Dobře známý je například procmail, jiný podobným třeba maildrop. Ovšem program Dovecot – používaný pro přístup k poště pomocí protokolů IMAP a POP3 – také obsahuje jednu komponentu, která tyto úkoly plní. Je to tzv. Local Delivery Agent (LDA, místní doručovací agent), kam se zprávy předávají z doručovacích služeb poštovního serveru, tedy zde v případě Postfixu jsou to výše uvedené služby.

    Použití Dovecot LDA má několik zásadních výhod. V první řadě tvoří celek se zbytkem programu Dovecot, čili se například bezproblémově stará o aktualizaci indexů (což by jinak prováděl Dovecot na základě zachycení události ze souborového systému, nicméně by to znamenalo, že by se zpráva musela znovu načíst, což zde odpadá). Další výhodou je modularita a možnost volit zásuvné moduly (pluginy), které se v dané konfiguraci použijí. V neposlední řadě je Dovecot LDA velmi snadno propojitelný s Postfixem, nevyžaduje žádnou složitou konfiguraci.

    Instalace a fungování

    link

    Dovecot LDA je součástí zdrojového balíčku, kompiluje se (v závislosti na kompilační konfiguraci) společně s ostatními součástmi programu. Na jednotlivých distribucích je pak situace různá, obecně však bývá v samostatném balíčku, který je třeba nainstalovat.

    LDA neběží jako trvale spuštěná služba. Naopak se spouští vždy pro jednotlivé zprávy, což je na jednu stranu pomalejší, současně to ale zjednodušuje řešení spolupráce s jinými komponentami poštovního řetězce. Služba Postfixu (např. pipe) tak spustí instanci Dovecot LDA (v příkazové řádce jí předá důležité parametry) a pak do ní rourou přenese obsah zprávy. LDA odpoví návratovým kódem, kterým indikuje výsledek zpracování.

    Zprovoznění LDA tak znamená dva kroky: Upravit konfiguraci Postfixu (tak, aby místo ukládání zpráv do schránky spouštěl LDA) a nakonfigurovat LDA včetně modulů. Postfix pak plně spoléhá (není-li speciálně nastaven – viz dále) na schopnost LDA doručovat zprávy, při problémech se zprávy nedoručují a po vypršení expirační lhůty ve frontě jsou vraceny zpět odesílatelům.

    Konfigurace Postfixu pro LDA

    link

    Aby Dovecot LDA převzal doručování pošty, je potřeba změnit konfiguraci programu Postfix. Zde se situace liší pro systémové a pro virtuální uživatele. Pro systémové stačí v souboru main.cf nastavit toto:

    mailbox_command = /usr/libexec/dovecot/deliver
    

    To platí samozřejmě jen za předpokladu uvedeného umístění programu deliver, jinak je nutno nastavit jinou cestu. Postfix tomu porozumí tak, že pro doručení do každé schránky spustí program deliver s implementací Dovecot LDA. Všimněte si, že se nepoužívají žádné parametry – to je proto, že Postfix nastavuje celou řadu proměnných prostředí a v nich LDA získá vše potřebné pro správnou funkci (parametry by šly také použít, ale je to zbytečné).

    Variabilnější funkci lze nastavit pomocí konfiguračního parametru mailbox_command_maps, který umožňuje řízení způsobu doručování podle příjemce. Tak lze například některých příjemcům doručovat primitivně a jiným přes LDA, případně mít více LDA pro různé příjemce. Ještě více možností nabízejí parametry mailbox_transportmailbox_transport_maps, kterými lze ovlivnit obecné možnosti přenosu zpráv při doručování.

    Virtuální uživatelé

    link

    U virtuálních uživatelů je to o něco málo složitější. Tam už to nejde řešit jen jednoduchým nastavením v main.cf, musí se sáhnout i do master.cf a přidat tam novou službu (založenou na pipe), která bude spouštět doručovací program deliver:

    dovecot   unix  –       n       n       –       –       pipe
      flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
    

    Tímto se vytvoří služba, která bude naslouchat na unixovém socketu a bude spouštět program deliver pod uživatelem vmail (určeným pro přístup do úložiště pošty – viz starší díly seriálu). Uvedené příznaky (flags) způsobují, že se do zprávy přidají hlavičky Delivered-ToReturn-Path, a také že se znaky v obálkových adresách (předaných přes parametry příkazové řádky) převedou na malá písmena.

    Dále je potřeba upravit konfigurační soubor main.cf – ani to ale není nic těžkého:

    virtual_transport = dovecot
    dovecot_destination_recipient_limit = 1
    

    První parametr říká, který transport (která služba) se použije pro doručování virtuálním uživatelům. Druhý parametr je ukázkou třídy parametrů, které se v použité podobě přímo nevyskytují v dokumentaci. Jedná se totiž o konkrétní reprezentaci parametru virtual_destination_recipient_limit, kde je slovo virtual nahrazeno konkrétním názvem služby, tedy v tomto případě dovecot. Hodnota 1 zde znamená, že se bude doručovat jen jedinému příjemci v rámci jedné instance (LDA takhle funguje).

    Konfigurace Dovecot LDA

    link

    Zbývá ještě nakonfigurovat samotného doručovacího agenta. Ten se - stejně jako zbývající součásti programu Dovecot – konfiguruje typicky v souboru /etc/dovecot/dovecot.conf. Takto by mohl vypadat fragment konfigurace:

    mailbox_location = maildir:~/Maildir
    mailbox_location = maildir:/var/mail/virtual/%d/%n/Maildir
    
    protocol lda {
      postmaster_address = postmaster@moje.domena
      hostname = postak.moje.domena
      mail_plugin_dir = /usr/lib/dovecot/lda
    }
    

    První parametr konfiguruje úložiště zpráv. To je samozřejmě definováno společně pro doručování i IMAP a POP3. V tomto případě se (z důvodů vysvětlených již v některém ze starších dílů) striktně odlišuje domovský adresář uživatele (a to i virtuálního) od vlastního úložiště pošty, aby v adresářích nevznikal zmatek při použití některých pluginů. První způsob zápisu je určen pro systémové uživatele, lze použít i u virtuálních – u těch je ale vhodnější zápis na druhém řádku, protože je z něj ihned zřejmé, jak úložiště vypadá.

    Dále tu je sekce pro LDA a tam je určena adresa postmastera (pro účely posílání systémových zpráv o odmítnutých zprávách), název počítače (pro tvorbu hlaviček apod.) a úložiště pluginů (zatím se ještě žádné nevyužívají, ale je to pro ně připraveno). Název počítače lze často vynechat (nastaví se automaticky), je uveden jen pro jistotu, aby byl správný. V extrémním případě není potřeba nastavovat vůbec nic a lze se spolehnout na výchozí hodnoty (nicméně je dobré mít raději parametry pod kontrolou).

    V tomto okamžiku je doručovací agent připraven plnit svůj úkol. Příchozí zprávy končí tam, kde mají, tedy ve schránce příjemce.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    4.2.2010 05:52 vasek125
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 13 (doručovací agent)
    Hodilo by se ještě říct, že "postmaster_address" je povinná volba, bez které dovecot nebude doručovat. Docela jsem se divil, když mi bez toho házel fatal error.
    Luk avatar 4.2.2010 13:39 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 13 (doručovací agent)
    Tohle je detail, který mi jaksi unikl. Nějak jsem to bral tak, že pokud se to nenastaví, Dovecot si adresu nastaví automaticky. Ale jak je vidět, není tomu tak. Protože obecně raději nastavuji více než méně (nemám rád, když je hodnota některého významného parametru ponechána na uvážení vývojáře - v příští verzi se může default změnit), ani mě nenapadlo zkoušet postmaster_address vynechat.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    12.5.2010 20:13 Majk
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 13 (doručovací agent)
    Ještě doplním, že pokud neprovozujete postfix pod rootem ( a to opravdu nedělejte :( ), je buď potřeba zkonfigurovat auth-master nebo nastavit setuid pro program deliver. Jinak nebude doručování fungovat.

    chmod u+s deliver
    18.6.2010 18:59 Kevin
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 13 (doručovací agent)
    Přesně na tento problém jsem narazil a dál jsem s tim nehnul, příkaz chmod U+s deliver nepomohl, ví někdo jak s tim hnout?
    18.7.2011 10:56 Jaroslav
    Rozbalit Rozbalit vše Ubuntu SERVER 10.04 LTS
    Zdravím, podle tohoto seriálu se mi podařilo rozjet v podstatě úplně všechno a jsem za něj moc vděčný, ale u LDA jsem se zasekl. Po delším zkoumání jsem zjistil toto (pro virtualní uživatele na výše uvedené distribuci):

    1. v postfix/master.cf je jiná cesta k programu deliver

    dovecot unix - n n - - pipe

    flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}

    nastavení dovecot/dovecot.conf:

    2. dovecot neví, co je mailbox_location, místo toho akceptuje

    mail_location = maildir:/var/mail/virtual/%d/%n/Maildir

    3. pluginy jsou jinde:

    mail_plugin_dir = /usr/lib/dovecot/modules/lda

    4. práva pro doručovacího agenta je třeba nastavit pořádně v sekci auth default { socket listen {:
    master {
    	path = /var/run/dovecot/auth-master
    	mode = 0600
    	user = vmail
    	group = vmail
    	}
    
    5. procesu dovecot/deliver je třeba zajistit práva k otevření konfiguračního souboru, jinak do logu dostanete chybu

    ...postfix/pipe ... Fatal: open(/etc/dovecot/dovecot.conf) failed: Permission denied

    Takže: chown root:vmail /etc/dovecot/dovecot.conf

    ---

    Ostatní v návodu platí.

    Když se všechno podaří, měli by se vám v mail.log objevovat hlášky:

    dovecot: deliver(...@....cz): msgid=<...>: saved mail to INBOX

    postfix/pipe: ...: to=<...@....cz>, relay=dovecot, delay=0.27, delays=0.1/0/0/0.17, dsn=2.0.0, status=sent (delivered via dovecot service)
    18.7.2011 12:12 Jaroslav
    Rozbalit Rozbalit vše Re: Ubuntu SERVER 10.04 LTS
    Ještě doplnění: mail_location musí být bez Maildir na konci. Jinak nefunguje IMAP - schránky se nenajdou.

    stačí jen:

    mail_location = maildir:/var/mail/virtual/%d/%n

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.