![]() |
Provjera postoji li odredjena e-mail adresa?
Imam nekakvu bazu mailova u kojoj se vremenom nakupilo smeca i trebam to na neki nacin pocistit. Smece su mailovi koji ili vise nisu aktualni ili ljudi pootvarali nove pa prosli quota i ne brigaju ili ukucavali mail koji ima ispravnu sintaksu ali realno ne postoji, itd itd...
Uglavnom, postoji li nacin da prodjem kroz tu bazu i provjerim postoji li zaista neki@mail.com ? Ako neko ima nekakvu skriptu/ideju, pliz... zahvaljujem pozdrav! |
Ja se iskreno nadam da ne postoji. To bi značilo da neko može da napravi skriptu koja generiše random email adrese i proverava da li postoje... A to ne bi bilo dobro.
Btw, mogao bi da polješ email na tu adresu sa obrazloženjem zašto ga šalješ i linkom u mailu koji omogućava korisniku da verifikuje email. |
Moze, hint: socket i MX records :)
Dinke zna vise o tome :) |
Mozes da proveris da li domen postoji, mozes da proveris da li postoji MX rekord za njega, mozes da se konektujes na port 25 servera (mozda ih ima vise!) i da 'razgovaras' sa SMTP serverom. U tom razgovoru si ranije mogao pitati da li prima postu za taj-i-taj nalog.
E, to uglavnom vise ne rade, radi sprecavanja potencijalnog SPAM-a i smanjivanja opterecenja na serverima. |
Citat:
a mogu li sta napravit recimo sa ovima koji su 'user over quota' ili sve te greske koje imaju MX record, ali se meni vraca nekakva greska? ovo za socket ne razumijem (ne znam previse o tome), pa ako mozes daj jos koju rijec o tome :) nije mi rjesenje slanje maila svakome pa validacija jer imam nekoliko hiljada adresa na koje saljem ljudima dnevne horoskope, a onda mi nije nesto simpaticno da im odjednom uvaljujem 'validirajte svoj mail'... jer tako baza vrlo lako padne sa 5 hiljada na 5 stotina :D a to mi ne treba. normalno, ako ne bude druge, morat cu, ali ako postoji neki drugi nacin, radije ne bi... |
Citat:
|
Citat:
|
Vazno je imati cistu bazu korisnika. Na zalost, to sa e-mailom nije lako, narocito ako su u pitanju mailing liste, a to u ovom slucaju jeste.
Mnogi se prijavljuju na takve mailing liste sa freemail naloga, pa kasnije na te naloge zaborave, prepune se, a nakon par meseci neaktivnosti se ukinu. Ako neko drugi kasnije registruje taj isti nalog, pocinje da dobija mailove na koje se nije pretplatio, sto je opet drugi problem. Ranije si lepo mogao da pratis ne samo da li je pismo uruceno, nego da li je pismo otvoreno. No, to sada nije moguce, eksterne slike (preko kojih je najlakse pracenje) su po defaultu zabranjene, tako da nista vise od te (malo podmukle) tehnike. Umesto da gledas koja adresa postoji, jednostavnije ti je da parsiras bounced back mailove. Na zalost, format bounced back mailova nije jedinstven, vise je human readable, a ne machine readable, makar bi serveri trebali jednoznacno da vrate kod greske u poruci. Dakle, treba da parsiras vrh poruke koja se vratila, i da gledas da li imas nesto tipa 550 User not found i slicno. Kod greske (uvek je troznamenkast) koji pocinje sa 5 znaci da je to terminalna fatalna poruka, takav korisnik ne postoji na tom serveru. Kod greske koji je oblika 3xx znaci da pismo nije uruceno, ali da je greska privremena, npr. over quota, server delay i slicno. Takve ostavi u e-mail listi. Jos je lakse ako imas punu kontrolu nad serverom koji salje e-mailove, tada se ne parsiraju bounced back poruke, nego log od mail servera. Princip je isti, 'vataju se bounced back mailovi sa 5xx porukom. 5000 nije neka strasna cifra sto se tice mailova, serveri koji odrzavamo salju i preko 500.000 mailova dnevno (radi se bas o mailing listama takvog tipa), pa imam dosta iskustva oko ovakvih stvari. |
Najbolji nacin da to uradis je: posaljes mail i u njega stavis reply-to da ti vrati na neku bounce email adresu koju ces da parsiras PHP-om (uvuci je preko POP3 a mozes i preko pipe-a).
Imas soft i hard vrste bounce-ova, imas i kodove da nadjes po netu, tako da ces tacno znati za svaki bounce kako i zasto je do toga doslo. Mi smo to koristili za newsletter sistem 1-2-All (guglaj da ne ispadne da reklamiram), mozes skinuti trial da vidis cisto kako izgleda. Naravno, nije program pisan za to, nego samo ima i tu opciju. ;-) |
@zigor
@srdjevic puno hvala na objasnjenjima, sad imam neku predstavu kako to funkcionira i tako cu i napravit. reply-to je postavljen pa cu proci kroz povratne mailove i vidjet sta u kojem slucaju vraca. evo bas gledam, jedan od slucajeva: host mx.net.hr[213.191.133.143] said: 550 No such user ili host mx1.mail.yahoo.com[4.79.181.14] said: 554 delivery error: dd This user doesn't have a yahoo.com account prodjem sve vracene, one s 5xx greskom odrezem i mirna bosna :) hvala svima! |
Oprez! Nasao sam ranije par primera gde je server vracao 5xx, a nije bila fatalna greska. Bilo je to dosta davno kada sam gledao, pa ne mogu na brzinu da se setim, ali preporucujem ti da potrosis vreme da pregledas sve te poruke, da ne izbrises slucajno nekoga koga ne trebas.
|
Upravo tako. Bolje ti prvo znaj koja je koja poruka (nadji negde spiskove), pa polako. Ustedeces dosta vremena. ;-)
|
[twinkie]$ dig dinke.net mx Ukratko, simuliras smtp protokol, do tacke kada dobijes podatak user ok ili 550 da user ne postoji i onda prekines konekciju. Nazalost, ovaj metod nije ni blizu 100% pouzdan, iz razloga koje je Zigor vec pomenuo. Pouzdaniji metod je koriscenje qmail-remote programa za slanje mailova, jer on moze da salje natrag i konfirmaciju da li je mail isporucen ili ne, ali proces je znatno sporiji od ovog gore navedenog (ni on nije 100% pouzdan), plus moras da saljes e-mail korisniku. [edit]Sa qmail-remote se nisam bakcao nekoliko godina, nije iskljuceno da ni taj metod vise ne funkcionise[/edit] |
Jos jedan 'nacin' mi pade na pamet. Vidjao sam to kod MaMML komponente (newsletter manager) za Joomla. A koristi upravo onaj web beacon koji sam spominjao u drugoj temi.
Znaci u news letteru (ukoliko je u HTML obliku) ubacis IMG tag koji upucuje na neki php fajl na tvom serveru sa parametrom tog e-maila. Kad user otvori, ti imas zapravo informaciju da ga ja otvorio i da je ziv. Naravno da ni to nije 100% sigurna metoda ali mozda ako koristis par ovih filtera tj kombinacija smanjices broj nepostojecih e-mailova. Uostalom ako neko ne zeli da otvori tvoj e-mail znaci da ga to vishe i ne interesuje da i bi bilo i dobro da ga skines sa liste (osim ako nije cilj napraviti broj). |
To je na žalost totalno nepouzdano, dovoljno je da korisnik izabere da sve čita plain text i da ga ti izbaciš sa liste pošto ti je nije "javilo" :)
Taj beacon se koristi najviše u nekim affiliate programima, radio sam nešto slično. Imaš recimo affiliate sajt koji prima i merchante i webmastere. Daš im linkove, a pošto želiš da proveriš svaki link, niko ne ide direktno na sajt nego link vodi na tvoj neki "redirect". Ti onda loguješ njegove podatke u bazu, i šalješ ga na sajt, a na sajtu stoji jedan IMG 1x1 koje je SRC="affiliatesajt/provera.php" u kojoj se ponovo proveravaju podaci korisnika, da li mu je to prvi klik ili neko fake-uje klikove, da li je dosao stvarno preko affiliate linka.... itd. Taj IMG izbaci samo 1x1 beli GIF i ne vidi se na strani. Tu naravno postoji dosta "problema ako se proverava samo IP jer dosta ljudi koriste share-ovan IP, a dosta provajdera generiše dinamičke IP-ove za skoro svaki request, pa može da se desi da isti user na jednoj strani im jedan IP a na drugoj na istom sajtu totalno drugi. Ja mislim da je, ako se ne traži aktiviranje profila preko email-a, dinketovo rešenje najbolje. |
puno hvala svima na odgovorima!
[nisam ni znao da se ta prica oko 1x1 gifa zove 'beacon' - ubise me tolika imena za sve i svasta :) ] problem je ako gleda sve samo kao plain-text ili pak ako mu mail-client po defaultu blokira prikaz slika u mailu upravo iz tih razloga 'zastite privatnosti'. tako je recimo podeseno ovdje kod mene na poslu - kad otvoris mail umjesto slika crveni krizici i tek na korisnicki right-click + allow images se pokazu slike. posto mail koji ja saljem ljudima sadrzi samo tekst (dnevni horoskop od par recenica) i svi ovi sa blokiranim prikazom slika otpadaju. tako da mi to nije rjesenje. cini se da cu morat svakako proc kroz sve mailove i vidjet sve povratne poruke, pa pronac spiskove poruka da vidim tocno sta koja znaci i brisat samo one koji su s fatalnom greskom (user unknown ili tako nesto), a ostali, npr. 'over quota' nek ostaju. ionako svaki mail ima obavijest o adresi za odjavu, pa ako se covjek sjeti nakon iks vremena pogledat mailbox i npr. sredit quota limit, ili ce greska nestat ili ce se odjavit, a oboje je prihvatljivo. Citat:
|
nasao sam nesto pa ako ce jos nekome bit korisno nek stoji ovdje:
http://www.supermailer.de/smtp_reply_codes.htm |
Vreme je GMT +2. Trenutno vreme je 13:32. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.