Afla cand cineva ti-a citit emailul
6Va voi prezenta o alternativa la readnotify ( ReadNotify lets you know when email you’ve sent gets read ), o alternativa in care voi detineti controlul. Ghidul este scris in asa maniera incat sa fie inteles de oricine.
Candva va macina un singur gand: ” Oare mi-a citit emailul ? Oare a-nteles ce simt eu pentru ea ? N-am primit niciun raspuns. „.
De-acum incolo puteti sa-aveti gandurile impacate doar daca ciuliti ploapele la micul ghid care urmeaza:
1).htaccess
RewriteEngine on RewriteBase / RewriteRule ^(.*)\.gif$ $1.php [L]
Folosindu-ne de mod_rewrite, ii spunem lui Apache sa interpreteze extensia .gif atribuita unui fisier .php existent ca fiind valida. Pe scurt, ma folosesc de regula de rewrite de mai sus, daca pe host am ceva.php, iar eu in browser cer ceva.gif, o sa fie acelasi lucru.
Doresc sa fac asta pentru ca unele servicii de mailing verifica si extensia imaginii din email, iar ca sa evitam sa fie catalogata drept invalida, ne folosim de url rewrite.
2) info.php
<?php $xxx = "-----------------"; $ip = $_SERVER['REMOTE_ADDR']; $date = date('F j, Y, g:i a'); $uagent = $_SERVER['HTTP_USER_AGENT']; $fopen = fopen('info.txt', 'a+'); fwrite($fopen, "\n".$xxx."\n".$ip."\n".$date."\n".$uagent."\n".$xxx."\n"); fclose($fopen); ?>
Fisierul acesta salveaza informatii ( IP si User Agent ) in info.txt despre cel care l-a accesat.
----------------- 92.x1.1x9.x0 April 3, 2010, 11:06 am Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; AskTB5.5) -----------------
3) image-02.php
<?php ob_start(); include("info.php"); ob_clean(); header('Content-type: image/gif'); print base64_decode('R0lGODlhAQABALMAAAAAAIAAAACAA'. 'ICAAAAAgIAAgACAgMDAwICAgP8AAA'. 'D/AP//AAAA//8A/wD//wBiZCH5BAE'. 'AAA8ALAAAAAABAAEAAAQC8EUAOw=='); ?>
Includem info.php pentru executie, insa ob_start() si ob_clean() fac ca totul sa se stocheze intr-un buffer intern. Practic info.php se executa, iar apoi dispare. Mai departe setam headerul ca fiind al unei imagini gif si printam pe pagina continutul base64 decodat al unei imagini 1×1 albe. Toate astea pentru ca image-02.php ( defapt image-02.gif, de-asta avem .htaccess ) sa fie vazut ca o imagine.
Cum ruleaza totul ? Atunci cand respectivul incarca ‘imaginea’ image-02.gif, se executa info.php care stocheaza informatii, despre respectiv, in info.txt, iar el nu vede nimic altceva decat un punct alb 1×1.
Cum ii trimitem imaginea pe mail ?
*mailer.php
<? $to = "cristina@yahoo.com"; $subject = "o poza cu noi doi"; $from = ""; $message = <<<EOF <html>buna Cristina, vreau sa-ti reamintesc ce mult insemni tu pentru mine. In semn de iubire, iti ofer poza asta cu noi doi"; <img src='http://host.ro/image-02.gif'> </html> EOF; $headers  = "From: $from\r\n"; $headers .= "Content-type: text/html\r\n"; mail($to, $subject, $message, $headers); echo "d0ne."; ?>
Scriptul de mai sus, cu modificarile de rigoare, atunci cand este rulat, face ca un mail sa fie trimis catre cristina@yahoo.com cu mesajul respectiv, impreuna cu ‘imaginea’ noastra. Atunci cand Cristina isi citeste emailul, este curioasa sa vada despre ce poza este vorba si apasa pe „Show Images”; image-02.gif se incarca.
Ghidul de mai sus functioneaza doar daca serverul pe care hostati scripturile are: php, suport .htaccess, functia mail() deschisa.
Scripturile sunt rudimentare si sunt discutate pentru a fii intelese. Ele se pot dezvolta pentru a oferii mai multe detalii intr-un format mai elegant.
O aplicare practica ar fi verificarea unor emailuri daca sunt valide. Desigur, nu este cea mai buna metoda.
Cum poti sa nu cazi in capcana ? Doar daca nu esti curios :D.
Daca acest articol contine o greseala, selecteaza cuvintele sau fraza gresita si tasteaza combinatia de taste Shift + Enter sau apasa click aici pentru a o raporta. Multumim!
Problema e ca abordarea asta (gen ReadNotify) vine cu probleme mari legate de confidentialitate. Si nu va dura mult sa te trezesti cu serverul de mail intr-un blacklist. Dar, daca iti permiti sa-ti schimbi des serverele, n-ai nici o treaba… 😀
Social comments and analytics for this post…
This post was mentioned on Twitter by worldIT: Afla cand cineva ti-a citit emailul http://goo.gl/fb/HIO15 #WorldIT…
Un articol foarte bun, un tutorial care este bine explicat si ordonat. La mai multe, multumim pentru efort.
Ai promis ca vei scrie un ghid sa-l „inteleaga toata lume”Or,e atat de incalcit cu termeni tehnici si cu litere invizibile,ca am ramas dezamagit ca mi-am pierdut timpul.Oare nu este nici un „specialist”din cati ne laudam cu ei peste hotare,sa ne ajute de a sti daca a fost citit mesajulnnoostru de pe mai sau nessanger?
Isi dau toti cu parerea cu tot felul de idei nastrjnicemasa ca sa se afle i9n treaba..Se sti ca cu proba de o luna sunt oferite de americani9 care-ti da raspunsu la data ora si localiatea cand ti-a fost citit mesajul si chiar de cate ori a fost itit.
Un dezamagit
Invata sa scrii si apoi revin-o pe la noi.
„Ghidul este scris in asa maniera incat sa fie inteles de oricine.” – din moment ce articolul e scris pe un blog de programare si IT am presupus ca cei care il citesc au un bagaj minim de cunostinte despre cele prezentate; „oricine” ii defineste pe acestia. dezamagit sunt eu ca ti-am citit comentariul si ca iti raspund 🙂