Hlavní navigace

Pošta pro každého (3)

Stanislav Brabec

Dnes si probereme zbylou část cesty pošty – od poštovního serveru do příchozí pošty našeho MUA. A protože k tomu je určen program Fetchmail, předvedeme si, jak jej pro tuto činnost nakonfigurovat.

Cesta od poštovního serveru do MUA

Jak jsme si řekli předminule, pro stahování pošty do cílového počítače existují dvě hlavní rodiny protokolů – POP a IMAP. Kromě toho lze poštu stahovat pomocí rozšířeného protokolu ESMTP (rozšíření ETRN a ODMR).

Nejstarší a nejrozšířenější jsou protokoly POP. Dnes je hlavním zástupcem POP3. Kromě funkcí pro stahování pošty nabízí jedinou vymoženost – zprávy lze označit jako přečtené, ale ponechat je nesmazané na serveru.

Novější protokol IMAP též nabízí vše pro stahování pošty. Navíc však disponuje funkcemi pro vzdálenou správu poštovní schránky. Je proto oblíben webmaily a uživateli, kteří potřebují číst poštu na více místech.

Když je pošta doručena do schránky na serveru, čeká ji poslední úsek cesty – stažení do poštovního programu. Dnes se seznámíme s nastavením programu Fetchmail, oblíbeného programu pro stahování pošty.

V UNIXovém světě se běžně používá poštovní soubor ve formátu zvaném mailbox, dle doporučení FHS umístěný v adresáři /var/mail (dříve též

/var/spool/mail) a nesoucí přihlašovací jméno uživatele.

Poštovní programy (MUA) si jej odtud přebírají, a pokud je uživatel odstěhuje, přesunou se do jednoho ze souborů poštovního archivu. Jeho umístění bohužel není standardizované a je u různých distribucí a programů různé. Bývá to ~/Mail, ~/mail, ~/nsmail nebo ~/.mail. Většina programů používá formát mailbox i pro archivovanou poštu, a pokud je donutíme, aby používaly stejný adresář, mohou poštu sdílet.

Na některých systémech se pošta ukládá v novějším formátu maildir, což je adresář, kde je každá zpráva v samostatném souboru.

Pokud nepoužíváme pouze jediný program vše v jednom, je ideální stahovat poštu do standardního adresáře pomocí specializovaného programu. Integrace protokolu POP3 do poštovního programu nepřináší proti tomuto řešení žádné výhody. Naproti tomu u protokolu IMAP může být integrace výhodná, ale i zde můžeme používat klasický model stáhnout–prohlédnout.

Fetchmail

Nejrozšířenější aplikací pro stahování pošty je bezesporu Fetchmail od Erica S. Raymonda. Je následníkem staršího programu Popclient od Carla Harrise. Nedisponuje sice pokročilými funkcemi jiných programů, ale zato zvládá prakticky všechny poštovní protokoly, včetně rozšířeného ESMTP, jednorázových hesel, SSL certifikátů či ověřování Kerberos a NTLM. Staženou poštu pak umí předat dalšímu MTA nebo MDA k doručení.

Jeho základní použití je jednoduché – na příkazové řádce zadáme jméno serveru; program se poté zeptá na heslo a zkouší stáhnout poštu.

Takový postup je však není pro pravidelné stahování pošty praktický hned z několika důvodů – musíme vypisovat heslo při každém přihlášení (z bezpečnostních důvodů není implementováno heslo z příkazové řádky) a spouštět Fetchmail pro každé konto zvlášť, a to pokaždé, když chceme stáhnout poštu. Program zkouší běžné protokoly a jejich verze, dokud nenatrefí na fungující protokol. Protože komunikace v těchto protokolech není duplexní (po zaslání dotazu se čeká na odpověď, a teprve když celá dojde, zadává se další dotaz), ubíhají nám cenné sekundy spojení, zatímco Fetchmail zjšťuje způsob, jak poštu stáhnout.

Detaily komunikace sice můžeme upřesnit i argumenty na příkazové řádce, ale pokud stahujeme poštu stále ze stejných serverů, je to nevýhodné.

Řešením je, založíme-li si soubor ~/.fetchmailrc, kam všechny tyto informace vyplníme. Popíšeme si, jak takové nastavení provést. Při nastavení si můžeme pomoci též GUI programem fetchmailconf.

Volby programu Fetchmail a konfiguračního souboru

Většinu vlastností lze nastavit jak z příkazové řádky, tak v konfiguračním souboru. Uvádím proto obě verze. Nejde zdaleka o úplný výčet, ale o příkazy pro stažení pošty z běžného konta. Úplný výčet najdete v manuálové stránce programu. Mezi nejdůležitější pat­ří:

-p, –protocol / proto jméno: volba protokolu. Nejčastěji POP3 nebo IMAP. Nezadáme-li nic, použije se AUTO (zkouší tři nejběžnější protokoly IMAP, POP3, POP2).

-u, –username / user jméno: jméno poštovního konta. Nezadáme-li nic, použije se přihlašovací jméno.

pass heslo (pouze v konfiguračním souboru): Heslo poštovní schránky. Nezadáme-li nic, program se pokaždé zeptá.

 –auth / auth typ: Způsob ověřování při přihlášení na server. Nezadáme-li nic, použije se password (ověřování heslem).

-U, –uidl / uidl: UIDL je jednoznačná identifikace zpráv v rozšíření protokolu POP3 a umožňuje programu zjistit, které zprávy již byly staženy. Tato volba přiměje Fetchmail, aby informaci použil.

-e, –expunge / expunge počet: Většina protokolů maže zprávy pouze po odeslání speciálního příkazu nebo při ukončení spojení. Pokud se během stahování rozpadne linka, program začíná stahovat poštu opět od začátku. Tato volba umožňuje omezit počet zpráv, stažených bez jejich smazání na výchozím serveru. Tato volba lehce prodlouží komunikaci mezi zprávami (v protokolu POP3 je totiž nutné se odhlásit a znovu přihlásit).

-v, –verbose (pouze na příkazové řádce): Zapne upovídaný režim Vhodné při ladění, nedaří-li se stáhnout poštu. (Lze zadat i -v -v.)

Volby pro správu zpráv

Jak jsme si již řekli, protokol POP3 umožňuje označovat zprávy za přečtené. Fetchmail implicitně stahuje pouze zprávy označené za nepřečtené a poté je ze serveru maže. Ke změně tohoto chování slouží následující čtveřice příkazů:

-k / keep: Ponechat přečtené zprávy na serveru.

-K / nokeep: Neponechat přečtené zprávy na serveru (přebije -k).

-F / flush: Před stahováním vymazat všechny zprávy označené jako přečtené.

-a / fetchall: Stáhnout všechny zprávy, bez ohledu na to, zda jsou označeny jako přečtené.

Ukázková konfigurace

Konfigurace musí být čitelná pouze pro uživatele – jak by ne, vždyť jsou v ní citlivé údaje, jako jsou hesla. Vezměme si na pomoc tři uživatele z minulého dílu: bfu, lamer a hacker. Bfu často dostává velké soubory, lamer používá běžnou schránku a hacker používá jednorázová hesla. Takto budou vypadat jejich konfigurační soubory (konfigurace jsou vymyšlené, včetně možností serverů).

Klíčové slovo poll říká, že příslušný řádek bude použit, pokud spustíme Fetchmail bez argumentů.

poll mail.seznam.cz user franta.b.u pass xxx expunge 3
poll pop3.hotmail.com proto pop3 auth password
     user big.brain pass jS@mk1nG
poll mail.sourceforge.net proto pop3 auth otp
     user u13562 pass kadomeglusbeviton

(Řádky jsou zalomeny kvůli šířce textu, v konfigurační souboru je zalamovat nemusíte.)

Některé údaje není nutné vyplňovat, neboť Fetchmail použije implicitní hodnoty (např auth). Nezapomeňte též, že většina velkých providerů používá pro POP3 server jiný počítač, než pro příjem pošty. Jméno serveru (a dokonce ani přihlašovací jméno) se tedy nemusí krýt s e-mailovou adresou.

Konfigurace důvěryhodným uživatelem

Fetchmail umí stahovat poštu i pro více uživatelů. Superuživatel provede konfiguraci démona a bude automaticky stahovat poštu pro všechny uživatele a doručovat do jejich schránek. Slouží k tomu funkce is jméno here. Uživatelé ovšem musí prozradit své heslo (pokud nepoužívají pokročilé ověřování, administrátor si jej stejně může v jejich souborech přečíst).

poll mail.seznam.cz user franta.b.u is bfu here
     pass xxx expunge 3
poll pop3.hotmail.com proto pop3
     user big.brain is lamer here pass jS@mk1nG
poll mail.sourceforge.net proto pop3 auth otp
     user u13562 is hacker here
     pass kadomeglusbeviton

Spouštění

Kromě standardního spouštění lze Fetchmail spustit i jako démon. Následující příkaz zajistí, že se každých 900 sekund pokusí stáhnou poštu ze serverů v konfiguraci. Podobný příkaz je vhodné umístit do skriptu pro připojení k Internetu.

/usr/bin/fetchmail -d 900 --syslog

Po odpojení je ještě vhodné server zastavit – buď klasickým

killall fetchmail, nebo prostředky pro spouštění a zastavování démonů v distribuci.

Jsou zde však ještě další cesty – spustit Fetchmail trvale a nechat jej testovat, zda je připojovací rozhraní aktivní. Pokud je rozhraní mimo provoz (nebo jsme připojeni na neobvyklém místě a nechceme přenášet hesla přes nezabezpečené linky), Fetchmail žádný požadavek nevyšle:

fetchmail -I ppp0/0.0.0.0/0.0.0.0 -d 900 --syslog

Fetchmail běžící jako démon je možné probudit a nechat stáhnout poštu (signálem HUP, běží-li pod superuživatelem, nebo signálem USR1, běží-li jako běžný uživatel).

Fetchmail standardně doručuje poštu pomocí lokálního SMTP. Pokud nechcete na lokálním stroji spouštět žádný MTA, můžete si explicitně vyžádat přímé doručení přes MDA, např.:

fetchmail -m "/usr/bin/deliver"
fetchmail -m "/usr/bin/procmail -d %T"
# Toto je ekvivalent standardního chování:
fetchmail -m "/usr/sbin/sendmail -oem -f %F %T"

(Pozor, při špatném nastavení doručovacího programu přijdeme o poštu!)

Našli jste v článku chybu?

17. 7. 2002 22:36

Stanislav Brabec (neregistrovaný)

No, není to zrovna vymoženost, spíš postranní efekt na UNIXových strojích (viz fetchmail/pop3.c):

Though the POP RFCs don't document this fact, on almost every POP3 server I know of messages are marked "seen" only at the time the OK response to a RETR is issued.

This means we can use TOP to fetch the message without setting its seen flag. This is good! It means that if the protocol exchange craps out during the message, it will still be marked `unseen' on the server. (Exception: in earl…



16. 7. 2002 18:29

Hans Ginzel (neregistrovaný)

V pristi kapitole, prosim, popiste, jak provadet stahovani posty bezpecne/sifrovane.

Vitalia.cz: 7 originálních adventních kalendářů pro mlsné

7 originálních adventních kalendářů pro mlsné

DigiZone.cz: V Plzni odstartovalo Radio 1

V Plzni odstartovalo Radio 1

Vitalia.cz: Test na HIV je zdarma i za pět set

Test na HIV je zdarma i za pět set

Root.cz: Nová třída SD karet A1 s vysokým výkonem

Nová třída SD karet A1 s vysokým výkonem

DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Vitalia.cz: Nejlepší obranou při nachlazení je útok

Nejlepší obranou při nachlazení je útok

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí