Perl mime, vagy hogyan lehet weboldalt postázni

Ez a cikk megmondja, hogyan kell
a Perl modulok LWP :: UserAgent és MIME :: Lite letöltésével
HTML oldal, és küldje el egy levelet a
minden beágyazott kép.

Alkalmaztam ezt a módszert, én naponta
Friss vicceket kapok a levelemben
doboz - Nos, lusta vagyok, hogy másnap felmásolok az Inetbe
🙂

  • LWP :: UserAgent - egyéni osztály
    WWW ügynökök
  • MIME :: Lite - könnyű MIME kódoló / dekóder
  • URI :: URL - az URL-sel való együttműködés
  • HTML :: LinkExtor - az URL összes URL-jének listája
    dokumentum

  • Idő :: Helyi - átalakítja a komponensek összetevőit
    másodpercben
  • anekdoták site / an / year hónap / o év month day.html

    és az évtől csak az utolsó kettőt
    számokat, a hónapot és a napot pedig a 2
    karakterek balra nullákkal, ha szükséges.

    Egy kis lírai dimenzió azok számára,
    aki csak elkezdte elsajátítani a Perl-t.

    Hogyan töltsük le a WEB oldalt?

    Üzenet elküldése mellékletekkel
    fájlokat?

    Tekintsük a program lépéseit.

    • Határozza meg a dokumentum URL-jét
    • Töltse le a WEB oldal tartalmát
    • Az összes tartalmat keresjük és töltjük le
      képoldal
  • A dokumentumra vonatkozó referenciákat megváltoztatjuk
    abszolút értékük

  • A kapott levelet küldjük
    email
  • A forgatókönyv technikai megvalósítása
    írjon le sematikusan, ha valami nem
    megérteni - lásd a forrást.

    C ANEKDOT.RU a tegnapi történeteket. Számoljuk ki
    tegnap - éjfél. kiegészítés
    idõpont a bal oldalon található nullákkal.

    $ sutki = 24 * 60 * 60;
    ($ tek_day, $ tek_month, $ tek_year) = (lokális időtartam) [3,4,5];
    $ in1 = timelocal (0,0,0, $ tek_day, $ tek_month, $ tek_year);
    $ in2 = $ in1- $ sutki;
    ($ tek_day, $ tek_month, $ tek_year) = (lokális idő ($ in2)) [3,4,5];
    $ tek_month ++; $ tek_year + = 1900;
    ha ($ tek_month<10)
    $ tek_month = "0." $ tek_month
    >
    ha ($ tek_day<10)
    $ tek_day = "0." $ tek_day;
    >
    $ an_year = substr ($ tek_year, 2, 2);

    Töltse le az oldal tartalmát a következővel:
    modul LWP.

    ha ($ url_page) $ url_page =

    / ^ (https? | ftp | fájl | nntp): \ / \ //)
    my $ req = új HTTP :: Request ('GET' => $ url_page);
    my $ res = $ ua-> kérés ($ req);
    $ gabarit = $ res-> tartalom;
    >

    külső CSS = '\ n ";
    dokumentum HTML =

    my $ analyseur = HTML :: LinkExtor-> új;
    $ analyseur-> parse ($ gabarit);
    én @l = $ analyseur-> linkek; foreach my $ url (@l)
    az $ urlAbs = URI :: WithBase-> új ($$ url [2], $ racinePage) -> abs;
    chomp $ urlAbs;
    ha (($$ url [0] eq 'a') ($$ url [1] eq 'href') ($$ url [2])
    ($$ url [2]!

    s / \ s href = ["']? $$ url [2] ["']? / href = "$ urlAbs" / gimx;
    >
    >

    Válasszon a dokumentumból az összes kép,
    töltse le a képet, határozza meg a típust és
    küldje vissza, MIME kódolású.

    ha (((lc ($$ url [0]) eq 'img') || (lc ($$ url [0]) eq
    'Src')))
    push (@mail, create_image_part ($ urlAbs));
    >
    ha (lc ($ ur) =

    / jpg $ /)
    $ type = "image / jpg";
    >
    más
    $ type = "application / x-shockwave-flash";
    >
    my $ res2 = $ ua-> kérés (új HTTP :: Request ('GET' => $ ur));
    $ buff1 = $ res2-> tartalom;
    $ file_name = substr ($ ur, rindex ($ ur, "/") + 1, hossza ($ ur));
    # kódolja a következő képet az én
    $ mail = új MIME :: Lite (Data => $ buff1, Encoding => 'base64', 'Filename' => $ file_name);
    $ mail-> attr ('Content-type' => $ típus); $ mail-> attr ('Tartalom-hely' => $ ur);

    Hozzon létre egy MIME objektumot, adja meg, kinek és mikor
    akinek a levél, az üzenet tárgya. Ha a
    nincs képoldal - üzenet típusa szöveg / html,
    ha vannak képek - több rész / kapcsolódó.

    $ mail = új MIME :: Lite 'From' => '[email protected]',
    'To' => $ to_email, 'Subject' => $ url_page, 'Adat' => $ html; $ mail-> attr ("Content-type"
    => $ content_type);
    ha (@mail)
    $ mail-> replace ("Type" => "több rész / kapcsolódó");
    # Csatoljon minden képet
    foreach (@mail)>
    >

    Az oldalt postai úton küldjük el. Tudod
    használjon SMTP-t vagy sendmail-t.

    Szkriptünket a címtárba helyeztük, ahonnan
    a programok végrehajtása engedélyezett és
    fájl végrehajtható

    chmod 750 /usr/local/www/cgi-bin/html_on_email3.pl

    Annak érdekében, hogy végül minden
    automatizálja, leteszi a forgatókönyvet a CRON-on.
    Ehhez adjon hozzá egy sort az / etc / crontab fájlhoz

    0 9 * * * root /usr/local/www/cgi-bin/html_on_email3.pl

    és minden reggel 9 órakor olvassa el a frisset
    anekdoták.

    Végezetül szeretném megjegyezni, hogy mindent meg lehet tenni
    másképp írták, szebbé.
    De a program működik, de mégis belőle
    nem szükséges 🙂

    Ossza meg ezt a cikket barátaival:

    A Chrome kiterjesztése, amelynek célja a felhasználók védelme, ellopja az adatokat a LinkedIn és a Facebook oldalról

    Az új IcedID bankár még fejlesztés alatt áll, de már bemutatja a fejlett támadási technikákat

    A hackerek segítettek abban, hogy a Pentagon több ezer sérülékenységet szüntessen meg

    Az országszerte nyert győztesek összegyűlnek a CTF Russia Kupa Skolkovo-ban