Autor: Jakub Tětek | 2.4.2014 |
Minule jsme naprogramovali bota, který se dokázal automatizovaně zaregistrovat na Facebooku. Po registraci je ale ještě potřeba potvrdit platnost uvedené e-mailové adresy. K přijmutí e-mailu žádajícího o potvrzení využijeme dočasné e-mailové schránky. Já jsem pro tento účel vybral službu TrashcanMail.com, ale podobný postup by šel aplikovat i na jiné služby poskytující dočasné e-mailové schránky. Některé z nich jsou ale už Facebookem blokovány. Dočasnou schránku jsem zvolil proto, že nás to oprošťuje od registrace e-mailu a tudíž i vypisování captchy, nebo dokonce čísla mobilního telefonu.
TrashcanMail.com navíc poskytuje RSS feed, který umožní kontrolovat, zda již e-mail dorazil, aniž bychom museli stahovat objemnou HTML stránku obsahující spousty nepotřebných informací.Vzhledem k tomu, že není zapotřebí řešit formuláře, ani nic podobného, tak namísto Mechanize použijeme Urllib2.
Nejdříve si nadefinujeme funkce, které použijeme při potvrzování emailu:
Nyní tedy máme všechny potřebné funkce a můžeme začít se samotným potvrzováním emailu.
Nejdříve zavoláme funkci waitForMail, která počká než přijde email a pak vrátí RSS feed.
Poté můžeme vyhledat odkaz, na stránku s posledním emailem a stáhnout jí.
Najdeme v ní potvrzovací odkaz na Facebook.
A odkaz otevřeme, čímž potvrdíme email.
Když naimportujeme nutné knihovny a dáme to dohromady s našimi funkcemi, dostaneme tento výsledný skript:
Nyní nám stačí zavolat funkci confirmMail s emailovou adresou (bez části @trashcanmail.com) v parametru a máme plně funkční účet na Facebooku.
Někdy by bylo užitečné emaily nejen přijímat, ale také odesílat. Například, když se změní obsah webové stránky, můžeme si nechat zaslat upozornění. K tomu bude potřeba mít nainstalován smtp server. Ve většině linuxových distribucí už je předinstalován a pokud není, je jednoduché ho doinstalovat. K tomu mohu doporučit například tutoriál na rosehosting.com.
Nejdříve naimportujeme e-mail MIME knihovnu, která nám umožní vytvořit objekt e-mailu, a SMTP knihovnu, pomocí které budeme email odesílat.
Když máme importovaný MIME modul, můžeme za jeho pomoci vytvořit objekt e-mailu
Poté vyplníme předmět, příjemce a odesílatele. Jako odesílatele můžeme nastavit jakýkoliv string vypadající jako emailová adresa, není tedy nutné, abychom použili naši skutečnou adresu. Hodnoty které vyplníme zde, se zobrazí příjemci v e-mailovém klientu.
Nyní otevřeme sezení s SMTP serverem, který běží na našem počítači.
A zprávu odešleme. Druhým argumentem je seznam obsahující adresy všech příjemců.
To je vše. Nyní už stačí jen uzavřít sezení.
Tím jsme odeslali e-mail na požadovanou adresu. Je ale dobré podotknout, že na počet odeslaných emailů bývá z důvodu spamu často omezení. Proto obvzlášť pokud plánujete použít k odesílání VPS, nedoporučuji odesílat příliš mnoho zpráv současně. Není žádná jasně vymezená hranice, kolik emailů odeslat, ale dokud to budete používat pouze jako upozornění, tak byste s tím neměli mít problém.
Pro dnešek je to vše, příště budeme v Mechanize používat TOR a ukážeme si další možnosti této knihovny.