OUTLOOK 2002 A SPAM
Seznam spamerů - Junk senders.txt
Dlouhodobějším používáním dále poposaných skriptů jsem pochopitelně získal seznam e-mailových adres, které jsem označil jako adresy spamerů. Během asi dvou let narostl na více jak 30000 záznamů, a zde vám jej předkládám. Můžete si jím svůj soubor Junk senders.txt doplnit. Zde předložený soubor obsahuje názvy domén, ze kterých jsou e-maily zasílány. V první verzi skriptů jsem ukládal do seznamu adresy celé, ovšem to vedlo k rychlému nárůstu počtu záznamů a tím zpomalování filtrování adres, při ukládání do zvláštního adresáře v Otlooku. Musel jsem proto skript modifikovat tak, aby pracoval pouze s doménovými názvy. Proto se zde mohou vyskytnout i domény, které se touto činností nezabývají, ale jejich doména mohla být zneužita. Nejvíce se zneužívají domény, které hostují u různých poskytovatelů webových služeb, a jejich doménová jména jsou poštovnímu serveru přiřazena jako tzv. aliasy. Musím přiznat, že i moje domény jsou čas od času takto zneužity.
Soubor JunkSenders.txt si můžete stáhnout zde. K prověření pravosti staženého souboru nabízím zde jeho checksum ve formátu MD5: b3b1495503ca6e1c8b14b55775ace78e
Seznámení s problémem.
Pokud ještě používáte MS Outlook 2002 (xp) a setkáváte se s množstvím spamu v příchozích emailech, může vám pomoci tento VBA skript. Jeho účelem je zjednodušit údržbu souboru do kterého tato verze Outlooku ukládá adresy spammerů. Bohužel, nebyl by to Microsoft, aby manipulaci se spamem nezkomplikoval. Světe div se, jeho nešťastné řešení se protáhlo i do MS Outlook 2003.
Jedná se o prapodivném způsobu označování spamu, které je možné pouze řádek po řádku. Zkuste ovšem označit více spamu najednou a provést akci "Nevyžádaná pošta - přidat do seznamu nevyžádaných odesílatelů", viz obr. 1.
Obrázek 1 - Výběr nevyžádaných odesílatelů.
Pokud označíte více řádků se spamem, najednou tato možnost mizí, jak vidíte na obrázku 2.
Obrázek 2 - Výběr nevyžádaných odesílatelů již není možný.
U této verze Outlooku také není možné ani omylem označenou poštu jako spam jednoduše odstranit ze seznamu spammerů! Je pochopitelné, že z takovýchto nedostatků a nedodělků je vlastně setkán celý software od Microsoftu a nabízen miliardám lidí za nadhodnocenou cenu. Stále se celé "balíky" software přepracovávají a modernizují, ovšem tyto drobnosti jej provázejí celou dobu. V tomto konkrétním případě si to vysvětluji obavou autora doplňku minimalizovat možnost mylného označení žádoucí pošty jako spamu.
Dotyčná verze Outlooku je také dosti neohebná pro programátory. Umožňuje existenci pouze jednoho projektu, který bývá uložen v domovském adresáři uživatele v souboru VbaProject.OTM, na cestě zřejmě:
"C:\Documents and Settings\UserName\Application Data\Microsoft\Outlook".
To zřejmě je proto, že u jiných Windows, hlavně starších verzí, to může být trochu, nebo podstatně jinak. Já v současné době používám Microsoft Windows XP Professional x64 Edition, alespoň tak to píše na instalačním CD.
Použití doplňku pro pohodlnější manipulaci se spamem.
Rozdíl v manipulaci se spamem oproti řešení Microsoftu, ostatně přidaného do Outlooku jedním z opravných balíčků, je patrný z popisu dále uvedeného řešení.
 
Po instalaci potřebných skriptů, která bude popsána dále, přibyde v nabídce okna "Doručená pošta" položka "Spam", obrázek číslo 3.
Obrázek 3 - Nová položka "Spam" v hlavní nabídce Outlooku, vpravo nahoře.
Kliknutím na nabídku "Spam" se nám otevře další nabídka "Přidat". Kliknutím na nabídku "Přidat" dojde ke spuštění procesu, který všechny vybrané položky v adresáři "Doručená pošta" postupně projde a přesune do adresáře "Nevyžádaná pošta". Pokud se ještě odesilatel nenachází v seznamu nežádoucích odesilatelů, bude k seznamu přidán.
Obrázek 4 - Nabídka "Přidat" v nabídce "Spam".
Pokud však přejdeme do adresáře "Nevyžádaná pošta" změní se i nabídka pod nabídkou "Spam" na "Odebrat". Kliknutím na nabídku "Odebrat" spustíme proces, který všechny vybrané položky v adresáři "Nevyžádaná pošta" postupně projde a přesune do adresáře "Doručená pošta". Současně bude odstraněn záznam ze seznamu nežádoucích odesilatelů. Tímto způsobem můžeme vrátit omylem označenou poštu jako spam zpět, viz obrázek číslo 5.
Obrázek 5 - Nabídka "Odebrat" v nabídce "Spam".
Jak bylo výše uvedeno, kliknutím na nabídku "Přidat", nebo "Odebrat" spustíme proces, který provede požadované úkony. Tento proces je vlastně makro, napsané v jazyce Visual Basic for Applications (VBA). Protože některá makra mohou být podvrhnuta nezodpovědnými programátory, tzv. makroviry, budete před spuštěním procesu varováni na skutečnost, že se pokouší přistoupit k citlivým údajům, viz obrázek číslo 6. Jak je z obrázku patrno, musíte určit čas, po který předpokládáte činnost skriptu a pochopitelně musíte potvrdit, že s během skriptu souhlasíte. Ti z vás, kteří běžně provádíte synchronizaci Outlooku s mobilním telefonem a podobně, již víte jak manipulovat s tímto hlášením.
Obrázek 6 - Povolení přístupu k citlivým údajům, zde adresám spammerů :)
Instalace I. doplňku pro pohodlnější manipulaci se spamem.
Upozornění: Dále popsaný postup instalace odstraní všechny vámi vytvořené skripty v aplikaci MS Outlook 2002. Pokud přesně dodržíte následující postup, budou vaše skripty zachovány v původním souboru projektu VBA. Bohužel, tato verze Outlooku neumožňuje jiný postup. Jistě lepším způsobem bude, stáhnout si soubory s VBA a přidat je k stávajícímu projektu. Vyžaduje to však alespoň minimální znalost skriptovacího prostředí Outlooku 2002.
Postup instalace je dále popsán v bodech, jejichž pořadí je nutné dodržet:
  1. Stáhneme si zde soubor VBA projektu zkomprimovaný do VbaProject.zip a umístíme jej do známého a prázdného adresáře, třeba C:\temp. K prověření pravosti staženého souboru nabízím zde jeho checksum ve formátu MD5:
    92d34f2f9008135a096081cfa1c2dfcc
  2. V tomto adresáři také extrahujeme ze staženého souboru VbaProject.zip požadovaný soubor VbaProject.OTM.
  3. Ukončíme aplikaci Outlook.
  4. Nalezneme adresář ve kterém se nachází originální soubor VbaProject.OTM. Typicky se jedná o adresáři "C:\Documents and Settings\UserName\Application Data\Microsoft\Outlook" v anglické verzi MS Windows XP. Pozor, pokud se budete proklikávat uvedenou cestou. Třeba adresář "Application Data" je opatřen atributy R a H, čili pouze pro čtení (Read only) a skrytý (Hidden). Při defaultním nastavení zobrazení položek v exploreru nebude takováto položka vůbec zobrazena! Proklikávat se také musíme po uvedené cestě, ne zkratkou přes link/ikonu "Dokumenty", "Moje dokumenty" a podobně!
  5. Přejmenujeme originální soubor VbaProject.OTM, ve výše uvedeném adresáři, například na 1VbaProjekt.OTM
  6. Zkopírujeme stažený soubor VbaProjekt.OTM na toto místo.
  7. Znovu spustíme aplikaci Outlook. Otevřeme nabídku "Nástroje > Makro > Zabezpečení...".
    Obrázek 7 - Nabídka "Nástroje > Makro > Zabezpečení..."
  8. Na kartě "Zabezpeční" určíme nejnižší možnou úroveň zabezpečení. Tuto úroveň můžeme ponechat dočasně, pouze po dobu instalace. Po instalaci ji vrátíme zpět na požadovanou hodnotu. Ovšem při běhu skriptu, či při startu aplikace Outlook budeme obtěžováni dotazy typu: "Chcete povolit běh makra?" a podobně.
    Obrázek 8 - Karta "Zabezpečení"
  9. Dále otevřeme nabídku "Nástroje > Makro > Editor jazyka Visual Basic".
    Obrázek 9 - Nabídka "Nástroje > Makro > Editor jazyka Visual Basic"
  10. Kliknutím na nabídku vstoupíme do editoru jazyka VBA, obrázek 10. Zde nic nepodnikáme, pouze se přesvědčíme, že v okně editoru je nějaký text a okno editoru zavřeme.
    Obrázek 10 - Okno editoru jazyka VBA.
  11. Ještě jednou ukončíme aplikaci Outlook. Po jejím opětovném startu se v nabídce objeví položka "Spam", viz obrázek číslo 3. Tím je instalace doplňku ukončena.
Instalace II. doplňku pro pohodlnější manipulaci se spamem.
Pokud nám není cizí prostředí editoru VBA, zakomponované do aplikace Outlook 2002, je instalace možná i do vašeho stávajícího projektu. Je ovšem poněkud složitější:
  1. Stáhneme si zde zkomprimované soubor VBA skriptů (outlook2002spam.zip) a umístíme jej do známého atresáře, třeba C:\temp. K prověření pravosti staženého souboru nabízím zde jeho checksum ve formátu MD5:
    141ef53e698e650df3911c3648c5bef6
  2. V tomto adresáři také extrahujeme ze staženého souboru outlook2002spam.zip požadované soubory:
    • EventsHandling.cls
    • MenuHandling.bas
    • SpamHandling.bas
    • ThisOutlookSession.cls
  3. Spustíme, či otevřeme aplikaci MS Outlook 2002 a otevřeme nabídku "Nástroje > Makro > Zabezpečení...".
    Obrázek 11 - Nabídka "Nástroje > Makro > Zabezpečení..."
  4. Na kartě "Zabezpeční" určíme nejnižší možnou úroveň zabezpečení. Tuto úroveň můžeme ponechat dočasně, pouze po dobu instalace. Po instalaci ji vrátíme zpět na požadovanou hodnotu. Ovšem při běhu skriptu, či při startu aplikace Outlook budeme obtěžováni dotazy typu: "Chcete povolit běh makra?" a podobně.
    Obrázek 12 - Karta "Zabezpečení"
  5. Po nastavení požadované úrovně zabezpečení otevřeme nabídku "Nástroje > Makro > Editor jazyka Visual Basic".
    Obrázek 13 - Nabídka "Nástroje > Makro > Editor jazyka Visual Basic"
  6. Po kliknutí na předchozí nabídku se otevře okno editoru jazyka VBA, obrázek 14. Nejprve prověříme, zda máme přístupný panel projektu. Na panelu projektu označíme položku a v nabídce, aktivované pravým tlačítkem myši, vybereme položku "Import souboru".
    Obrázek 14 - Okno editoru jazyka VBA.
  7. V panelu "Import souboru" nejprve vyhledáme adresář, do kterého jsme rozbalili soubory s VBA skripty. Potom označíme soubor ThisOutlookSession.cls a stiskneme tlačítko "Otevřít", viz obrázek 15.
    Obrázek 15 - Import souboru s kódem skriptu VBA.
  8. Ve stromu projektu se objeví modul třídy ThisOutlookSession1. Pokud dvakrát ťukneme myškou na tento řádek, objeví se nám v pravé, editační části okna editoru text, odpovídající tomu na obrázku 16. Běžným způsobem celý obsah okna označíme (třeba pomocí kláves Ctrl+A) a vyvoláme pravým tlačítkem myši nabídku. Potom co označený text zmizí vybereme příkaz "Vyjmout".
    Obrázek 16 - Obsah okna editoru VBA po importu souboru ThisOutlookSession.cls.
  9. Dále poťukáme dvakrát na položku ThisOutlookSession v panelu projektu. Tím aktivujeme nové editační okno, ťukneme na jeho plochu, aktivujeme pravým tlačítkem myši kontextovou nabídku a vybereme příkaz "Vložit", obrázek 17. Provedenou změnu okamžitě uložíme klepnutím na ikonu diskety.
    Obrázek 17 - Obsah okna editoru VBA s přesunutým obsahem.
  10. Nyní musíme odstranit prázdnou větev ThisOutlookSession1 v panelu projektu. Jednoduše ji označíme a v kontextové nabídce pod pravým tlačítkem myši vybereme položku "Odstranit ThisOutlookSession1...", jak je patrné z obrázku 18.
    Obrázek 18 - Odstranění nepotřebné větve projektu ThisOutlookSession1.
  11. Budeme dotázáni, zda si přejeme exportovat obsah této položky do externího souboru. Této možnosti nevyužijeme, a tak odpovíme "Ne", viz obrázek 19.
    Obrázek 19 - Odstraněný kód neuložíme, je beztak prázdný.
  12. Nyní obdobným způsobem, jak bylo popsáno v bodech 6. a 7. importujeme ostatní tři soubory. Po jejich importu musí strom projektu odpovídat tomu na obrázku číslo 20.
    Obrázek 20 - Celý strom projektu po importu všech souborů.
  13. Zbývá nám prověřit takzvané "Zdroje", nebo-li vazby skriptovacího stroje aplikace Outlook na potřebné knihovny a doplňky. Vybereme proto v nabídce VBA editoru položku "Nástroje > Reference" podle obrázku číslo 21.
    Obrázek 21 - Výběr nabídky referencí na knihovny a doplňky.
  14. Zaškrtnutá políčka seznamu na panelu "Reference" by měla odpovídat obrázku číslo 22. Nejspíš budete muset v seznamu najít a zaškrtnout položku "Microsoft CDO 1.21 Library". Pokud je vše v pořádku stiskneme tlačítko "OK". Potom klepnutím na ikonu diskety celý projekt uložíme.
    Obrázek 22 - Panel "Reference" a zaškrtnuté potřebné knihovny.
  15. Po uložení projektu zavřeme okno editoru VBA a ukončíme aplikaci MS Outlook. Aplikaci Outlook opět spustíme. Přesvědčíme se, že nabídka okna "Doručená pošta" je rozšířena o položku "Spam", viz obrázek číslo 3. Tím je instalace doplňku dokončena.
Výše uvedený postup instalace je mnohem složitější, nežli předtím popisovaná výměna souboru projektu typu OTM. Výhodou však je, že potřebné skripty můžeme přihrát již k těm stávajícím.
Aktivace antispamového filtru u aplikace Microsoft Outlook 2002.
Po aplikaci jednoho z řady opravných balíčků je Outlook 2002 doplněn jednoduchým spamovým filtrem a filtrem zpráv s obsahem pouze pro dospělé. Pro plně automatizované filtrování je nutno mít tento filtr aktivní. Jinak nebudou zprávy, jejichž adresa byla přidána na seznam odesílatelů nežádoucí pošty, při příchodu automaticky přesouvány do adresáře nežádoucí pošty. Proto není na škodu popsat zde i aktivaci spamového filtru.
  1. Otevřeme nabídku "Nástroje > Uspořádat", nebo klikneme na ikonu identickou té, která je v nabídce a umístěnou na panelu nástrojů, na obrázku číslo 23 vpravo nahoře.
    Obrázek 23 - Nabídka "Nástroje" s položkou "Uspořádat".
  2. Po kliknutí na položku nabídky, či ikonu, se nám zobrazí v okně "Doručená pošta" panel "Způsoby uspořádání složky Doručená pošta", jak je patrno z obrázku číslo 24. Zde klikneme na odkaz "Nevyžádaná pošta".
    Obrázek 24 - Panel "Způsoby uspořádání složky Doručená pošta".
  3. Panel změní obsah na ten, dle obrázku číslo 25. Zde v prvním řádku vybereme položky tak, aby výběr odpovídal obrázku, tj. Automaticky PŘESUNOUT nevyžádané zprávy do složky NEVYŽÁDANÁ POŠTA.
    Obrázek 25 - Panel "Způsoby uspořádání složky Doručená pošta", položka "Nevyžádaná pošta".
  4. Zkontrolujeme nastavení panelu "Způsoby uspořádání složky Doručená pošta", které má odpovídat tomu na obrázku. Důležitý je obsah prvního řádku, vlevo od tlačítka "Vypnout". Zde by mělo být oznámení, že "Nové nevyžádané zprávy budou přesunuty do složky Nevyžádaná pošta". Nakonec panel zavřeme, kliknutím na křížek vpravo nahoře, na ploše panelu.
    Obrázek 26 - Panel "Způsoby uspořádání složky Doručená pošta", položka "Nevyžádaná pošta".
  5. Tuto kontrolu můžeme provést i s pomocí tzv. "Průvodce pravidly". V něm se musí nacházet položky uvedené na obrázku číslo 27. Nalezneme zde i seznam emailových adres spammerů, nazývaného také "Černá listina" (Black list). Průvodce pravidly je přístupný jako stejnojmenná položka nabídky "Nástroje".
    Obrázek 27 - Průvodce pravidly a jeho obsah.
  6. Microsoft nazývá spammery odpadem, tedy Junk. V souboru Junk Senders.txt jsou proto uloženy e-mailové adresy, námi označené jako nežádoucí. Okamžitě při příchodu jakékoliv e-mailové zprávy je prověřeno, zda se adresa odesílatele nenachází v tomto souboru. Pokud tomu tak je, bude okamžitě přesunuta do složky "Nevyžádaná pošta". Soubor leží ve stejném adresáři, kde i dříve vzpomínaný soubor VbaProject.OTM. Mechanizmus ukládání "Černé listiny" do textového souboru je typický pro MS Outlook do verze 2002. Verze 2003 přináší opět "drobnou" změnu, "Black list" je ukládána do databáze registry v binárním tvaru. Proto řešení pro MS Outlook 2003 bude nabídnuto co nejdříve.
    Obrázek 28 - Panel "Soubory Junk Senders.txt a VbaProject.OTM v adresáři Windows.
Upozornění.
Dovoluji si ctěné zájemce upozornit na skutečnost, že uvedené řešení se opírá o použití MS Outlook 2002 v české verzi a o anglickou verzi Windows XP. Při použití v jiném prostředí budou nutné drobné změny v kódu skriptů VBA. Tyto úpravy budou časem zdokumentovány. Důvodem je jedno až dvě rozdílná prostředí ve kterých může autor uvedené řešení otestovat. Změny v kódu se týkají jiných názvů v cestách a názvů polí v samotném Outlooku.
Děkuji za pochopení.
 
Prohlášení.
Jak už se stává zvykem, musím na tomto místě prohlásit, že VBA skripty jsem vlastnoručně napsal. Přiznávám ovšem, že jsem vědomosti čerpal z nápovědy k MS Outlook 2002, ze stránek Microsoftu a stránek jiných chytrých lidí, kteří se zabývají obdobnou problematikou. Tyto skripty dávám zcela vědomě k dispozici komukoliv, kdo o to kdy projevil zájem. Nechci nést odpovědnost za škody, které si dotyčný způsobí svojí nevědomostí. Tyto skripty mohou být modifikovány a dále šířeny bez omezení. Pokud jim bude přidán záludný a škodlivý kód, vězte, že na tom nemám ani ten nejmenší kousíček viny. Proto si raději stáhněte skripty z mojí stránky. Zde zaručuji, že stažené skripty budou původní. Bohužel i tyto stránky lze prolomit, změnit jejich adresu a podvrhnout jiný obsah. Také za tyto pokusy nenesu žádnou zodpovědnost. Budu pouze rád, že posloužily svému účelu. Neposkytuji také žádnou technickou pomoc, prostě musíte tento kód přijmout takový, jakým je.
Na několika místech jsem použil chráněné názvy výrobků, technologií či společností. Možná tato označení nebyla úplná a neodpovídala požadovaným parametrům. Omluvou mi jistě bude, že jsem tak musel učinit, aby se vědělo, o čem je řeč. Jistě mi bude prominuto, pokud některé tvrzení neodpovídalo ryzí skutečnosti a vynaložené reklamě.
Poděkování.
Děkuji všem spammerům a také Microsoftu, že mne přinutili sednout a napsat tyto skripty. Měl jsem již dost označování jednotlivých zpráv jako spam. Děkuji také za nabídky většinou užitečného zboží. Penis mám již díky několika operacím a vytažením až skoro po paty - děkuji. Po spolknutí viagry, cialisu a jiných preparátů je můj výkon v posteli i mimo ni označován za obdivuhodný a neutuchající - děkuji. Absolutně mě přešla chuť na jídlo a automaticky jsem zhubnul na ideální váhu - děkuji. Mám plné ruce náramkových hodinek Rolex, Omega, Patek a jiných, stejně jako sovětští osvoboditelé v roce 1945. Oni je neuměli natáhnout, já nemohl odolat vaší nabídce - děkuji. Používám laciný software od renomovaných společností vámi do nekonečna nabízený. Ještě jsem nestihl stáhnout Vistu, je to balík, ale i tak - děkuji. Děkuji všem solidním obchodníkům, jak mi nabízejí svoje přebytky, nezlobte se, buďto už mám, nebo nemám zájem, přesto - děkuji, že jste mne nevynechali. Moje konto v bance přetéká neboť vaše nabídky na koupi a prodej akcií ve správnou chvíli mne učinily opravdu bohatým - děkuji. Moje konto mi dovolilo zahrát si ve vašem kasinu, musím přiznat, zde mi štěstí moc nepřeje, snad příště. Ovšem moje dlouhé zimní večery jsou díky vaší snaze zábavnější, napínavější a kratší, takže - děkuji, děkuji a ještě jednou děkuji. Zvláštní dík věnuji spammerům proto, že moje doména je vláčena po "Black list" seznamech mailových serverů celého světa. Jak obdivuhodné, z jedné strany se bránící zuby nehty monopolu nadnárodních společností, na straně druhé vytvářející jiný monopol - monopol nechtěné nabídky. Děkuji.
 
 
© 2006 Djordje Zurovac, všechna práva vyhrazena.