Portál AbcLinuxu, 18. dubna 2024 17:05

Jsme na dovolené - automatická odpověď

24. 8. 2004 | Petr Bravenec
Články - Jsme na dovolené - automatická odpověď  

Jak jednoduše nastavit inteligentní automatické odpovídání, které nereaguje na stejnou adresu dvakrát, ignoruje spam a emailové konference a mohou jej využívat i uživatelé Windows?

Úvod

Vždycky v létě se objeví několik požadavků na automatické poštovní odpovědi. Lidi, kteří celý rok žili se svými zákazníky a obchodními partnery, denně vyřizovali několik desítek mailů, nyní nasedli do svých plechovek a odjeli se válet někam k moři. Samozřejmě chtějí, aby se o svou radost z dovolené mohli podělit i se svým počítačem a se svými poštovními protějšky a vyžadují, aby systém automaticky odesílal informaci o mobilním telefonním čísle, na kterém jsou k zastižení, a kdy zase začnou pracovat a vyřizovat poštu.

Nejjednodušším řešením, které napadne i jinak nenápadného uživatele, je nastavení filtru v Outlooku - na všechny zprávy jejich poštovní klient automaticky odpoví "Nejsem tady, vrátím se v pondělí". V pondělí se pak diví, že o jejich dovolené nikdo nic neví a tlučou se do hlavy, když jim dojde, že aby jejich řešení fungovalo, měli nechat počítač zapnutý.

Z nenápadného uživatele se stane nápadný v momentě, když se někde na druhé straně poštovního drátu vyskytne podobný chytrák a jejich poštovní programy si začnou hromadně vyměňovat upozornění o dovolené. Nejdříve se zaplní lokální disk v PC, Outlook přestane komunikovat, potom se zaplní disky na serveru a nakonec se natlakují všechny datové dráty a začne hrozit jejich exploze. Po návratu z dovolené se pak ubohý uživatel tluče do hlavy, když se musí probírat několika desítkami tisíc zpráv.

Zkušený síťový administrátor, před kterým začnete mluvit o automatické odpovědi, se proto začne zcela oprávněně ježit a bránit. Někdy se ale ubránit nelze a je potřeba něco vymyslet.

Procmail

Pro podobné úlohy lze docela snadno využít program procmail. Ten dnes bývá použitý ve většině linuxových distribucí. V manuálových stránkách je přímo uvedený příklad, který je docela slušně zabezpečený proti nežádoucí poštovní smršti. Poštu přes internetové prostředí transportuje například postfix nebo sendmail a procmail je program, který se používá pro uložení doručené pošty do uživatelovy schránky na serveru. Tam pak pošta čeká, než si ji uživatel některým protokolem pro přístup ke schránce (imap, pop3) vybere do svého klienta (Outlook, Mozilla, Thunderbird). Při ukládání pošty může dělat procmail spoustu užitečných činností - podle různých kritérií třídit poštu do různých přihrádek, přeposílat poštu jinam, zbavovat uživatele spamu a také odpovídat na poštu.

Bohužel jsou procmailovy vyjadřovací prostředky dosti nezvyklé a mnoha lidem dělá problémy v procmailu udělat i ty nejjednodušší úlohy. Je naprosto nemožné přesvědčit obyčejného uživatele a i mnohého správce, aby byl ochotný se procmailu věnovat.

Příklad v manuálu procmailex(5) uvádí jednoduchý skript, který imituje činnost programu vacation (nikdy jsem na tento program, narozdíl od procmailu, nenarazil). Podobně si může nastavit automatickou odpověď zkušený administrátor. Jenže pro obyčejného uživatele - většina jich navíc pracuje ve Windows - je takový způsob zcela nevhodný.

Skutečně efektivní systém musí splňovat několik kriterií:

Skript

Předložené řešení používám už poměrně dlouho a celkem se mi osvědčilo. Největším problémem tohoto řešení je, že musím uživatelům vysvětlovat, co je to ten Notepad a že Wordem soubor pro automatické odpovědi opravdu vytvořit nemohou, a že záleží na tom, jestli napíší "dovolena.txt" s dlouhým nebo krátkým písmenem á.

Proti nebezpečí poštovní smrště se systém brání hned dvěma způsoby - v prvé řadě si vede seznam adres, na které už byla automatická odpověď odeslaná. Za druhé vyrobí v hlavičce odesílané pošty značku (X-Loop: user@firma.cz), podle které může zprávu nebo odpověď na zprávu později identifikovat.

Celý systém se řídí existencí souboru dovolena.txt. Jestliže v domácím adresáři uživatele takový soubor existuje, jeho obsah se odesílá jako automatická odpověď. Uživatelé Windows proto musejí mít přístup do svého domácího adresáře - ten jim lze připojit například přes Sambu.

Skript samotný by měl být uložen v domácím adresáři v souboru .procmailrc. Tam se může válet nečinně celou věčnost a čekat na svou příležitost (než se objeví soubor dovolena.txt).

Obvyklí uživatelé bývají do konferencí přihlášení jen vyjímečně, u nich nejsou potřeba prakticky žádné úpravy. Ve složitějších případech lze úpravou skriptu lépe určit, kam se bude automatická odpověď odesílat. Procmail je dobře dokumentovaný a v manuálových stránkách je uvedeno i velké množství užitečných příkladů.

# Tady přepište svou část adresy za zavináčem
DOMENA="mojefirma.cz"

############################################
# Filtry na dovolenou. Vše se řídí existencí
# souboru $HOME/dovolena.txt
# V souboru je text, který se posílá
# uživatelům jako automatická odpověď.
# Soubor by měl být napsaný v češtině pro
# windows.

############################################
# Neexistuje-li soubor dovolena.txt,
# není důvod pro existenci souboru
# s adresami, na které se někdy posílaly
# automatické odpovědi. Smazat.
:0 w:
* ? test ! -r $HOME/dovolena.txt
* ? test   -r $HOME/dovolena.cache
| rm -f $HOME/dovolena.cache

############################################
# Zkontrolovat, zda nejde o spam. Na ten
# se nebude odpovidat.
:0fw: spamassassin.lock
* !^X-Spam-Status
* !^FROM_DAEMON
* !^X-Loop: $LOGNAME@$DOMENA
* !^X-Loop:.*@$DOMENA
* ? test -r $HOME/dovolena.txt
| spamc

############################################
# Nezapomenout doplnit konference, na které
# se nesmí odpovídat!
:0 Whc: dovolena.lock
* !^To:.*linux.*
* !^X-Spam-Flag: YES
* !^FROM_DAEMON
* !^X-Loop: $LOGNAME@$DOMENA
* !^X-Loop:.*@$DOMENA
* ? test -r $HOME/dovolena.txt
| formail -rD 16384 dovolena.cache

    :0 ehc
    | (formail -rI"Precedence: junk" \
        -A"X-Loop: $LOGNAME@$DOMENA" ;\
        -A"Content-Type: text/plain; charset=\"win-1250\"" ;\
        cat $HOME/dovolena.txt \
      ) | $SENDMAIL -oi -t

Související články

Nastavení poštovního subsystému v Linuxu
Kompletní proxy server přes modem
MessageWall - kladivo nejen na spam
Spam: naučte se bránit
Řešení pro dialup

Odkazy a zdroje

procmail.org

Další články z této rubriky

Praktický test komprese ZPAQ v programu lrzip
Porovnávání souborů PDF
Microsoft rozdává zadarmo stovky e-knih
Minimalistické prezentace s Markdown
Kde hledat Creative Commons a alternativy

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.