Acest articol vă va spune cum să
folosind modulele Perl LWP :: UserAgent și MIME :: Lite descărcare
Pagina HTML și trimiteți-o într-o scrisoare cu
toate imaginile încorporate.
Aplicând această metodă, eu zilnic
Îmi fac glume proaspete în corespondența mea
- Eu sunt prea leneș să urc la Inet în fiecare zi
🙂
- LWP :: UserAgent - clasă personalizată
Agenți WWW
document
timp în secunde
anecdote site / an / an an lună / o an lună day.html
iar din anul ei iau doar ultimele două
cifrele, iar luna și ziua sunt completate la 2
caractere cu zerouri în stânga, dacă este necesar.
O mică diminuare lirică pentru aceia,
care tocmai a început să stăpânească Perl.
Cum se descarcă pagina WEB?
Cum se trimite un mesaj cu atașamente
fișiere?
Luați în considerare pașii programului.
- Definiți adresa URL a documentului
- Descărcați conținutul paginii WEB
- Căutăm și descărcăm tot conținutul
pagina de imagini
valoarea lor absolută
poștă electronică
Punerea în aplicare tehnică a scenariului
descrieți schematic, dacă nu există ceva
înțelegeți - vedeți sursa.
C ANEKDOT.RU toate povestile de ieri. Noi calculam
data - miezul nopții ieri. complement
data cu zerouri în stânga.
$ sutki = 24 * 60 * 60;
($ tek_day, $ tek_month, $ tek_year) = (localtime) [3,4,5];
$ in1 = timelocal (0,0,0, $ tek_day, $ tek_month, $ tek_year);
$ in2 = $ in1- $ sutki;
($ tek_day, $ tek_month, $ tek_year) = (localtime ($ in2)) [3,4,5];
$ tek_month ++; $ tek_year + = 1900;
dacă ($ tek_month<10)
$ tek_month = "0." $ tek_month
>
dacă ($ tek_day<10)
$ tek_day = "0." $ tek_day;
>
$ an_year = substr ($ tek_year, 2, 2);
Descărcați conținutul paginii utilizând
modulul LWP.
dacă ($ url_page) $ url_page =
/ ^ (https? | ftp | fișier | nntp): \ / \ //)
$ req = noua HTTP :: Cerere ('GET' => $ url_page);
cererea mea $ res = $ ua-> ($ req);
$ gabarit = $ res-> conținut;
>
CSS externe = '\ n ";
document HTML =
meu $ analyseur = HTML :: LinkExtor-> nou;
$ analyseur-> parse ($ gabarit);
link-urile mele @l = $ analyseur->; foreach-ul meu $ url (@l)
$ urlAbs = URI :: CuBase-> nou ($ url [2], $ racinePage) -> abs;
chomp $ urlAbs;
dacă ((url [0] eq 'a') ($ url [1] eq 'href') ($ url [2])
(($$ url [2]!
s / \ s href = ["']? $$ url [2] ["']? / href = "$ urlAbs" / gimx;
>
>
Alegeți din document toate imaginile,
descărcați imaginea, determinați tipul și
returnează-l, codificat în MIME.
dacă (((lc ($$ url [0]) eq 'img') || (lc ($$ url [0]) eq
'Src')))
împinge (@mail, create_image_part ($ urlAbs));
>
dacă (lc ($ ur) =
/ jpg $ /)
$ tip = "imagine / jpg";
>
altfel
$ type = "aplicație / x-shockwave-flash";
>
solicitarea mea $ res2 = $ ua-> (cerere HTTP :: noi ('GET' => $ ur));
$ buff1 = $ res2-> conținut;
$ nume fișier = substr ($ ur, rindex ($ ur, "/") + 1, lungime ($ ur));
# codificați imaginea următoare
$ mail = nou MIME :: Lite (Date => $ buff1, Encoding => 'base64', 'Nume fișier' => $ file_name);
$ mail-> attr ('Content-type' => tip $); $ mail-> attr ('Content-Location' => $ ur);
Creați un obiect MIME, specificați de la cine și
căruia îi este scrisoarea, subiectul mesajului. În cazul în care
nu există nici o pagină de imagine - tipul mesajului text / html,
dacă există imagini - multipart / legate.
$ mail = nou MIME :: Lite 'De la' => '[email protected]',
'Pentru' => $ to_email, 'Subject' => $ url_page, 'Data' => $ html; $ mail-> attr ("Tip de conținut"
=> $ content_type);
dacă (@mail)
$ mail-> replace ("Type" => "multipart / related");
# Atașați fiecare imagine
foreach (@mail)>
>
Trimite pagina prin poștă. Poți
utilizați SMTP sau sendmail.
Am pus scenariul nostru în director, de unde
este permisă executarea programelor și
fișier executabil
chmod 750 /usr/local/www/cgi-bin/html_on_email3.pl
Pentru ca în final toate
automatizați, închideți scriptul nostru pe CRON.
Pentru aceasta, adăugați o linie în fișierul / etc / crontab
0 9 * * * root /usr/local/www/cgi-bin/html_on_email3.pl
și în fiecare dimineață la ora 9 citiți proaspătul
anecdote.
În concluzie, vreau să observ că totul se poate face
a fost scrisă într-un mod diferit, mai frumoasă.
Dar programul funcționează, dar mai mult de la ea și
nu este necesar 🙂
Distribuiți acest articol cu prietenii dvs.:
Extensia pentru Chrome, concepută pentru a proteja utilizatorii, fură informații de la LinkedIn și Facebook
Noul banker IcedID este încă în dezvoltare, dar deja demonstrează tehnici avansate de atac
Hackerii au ajutat Pentagonul să elimine mii de vulnerabilități
Câștigătorii din toată țara se vor reuni la Cupa Rusă a CTF din Skolkovo
Trimiteți-le prietenilor: