DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Regular expression i htaccess (http://www.devprotalk.com/forumdisplay.php?f=41)
-   -   Provjera postoji li odredjena e-mail adresa? (http://www.devprotalk.com/showthread.php?t=1331)

dee 02. 08. 2006. 18:51

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!

Ilija Studen 02. 08. 2006. 18:59

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.

MorenoArdohain 02. 08. 2006. 19:03

Moze, hint: socket i MX records :)

Dinke zna vise o tome :)

marinowski 02. 08. 2006. 19:10

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.

dee 02. 08. 2006. 19:21

Citat:

Originalno napisao MorenoArdohain
Moze, hint: socket i MX records :)

Dinke zna vise o tome :)

MX records bi rijesio zafrkanciju, da neko unosi blabla@buu.ble, znaci ono sta prolazi regexp validaciju maila, a ipak ej nepostojeci. to je dobro, dio problema rijeseno :)

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...

Ivan 02. 08. 2006. 20:16

Citat:

zigor: 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.
Da, ovako su radili neki e-mail crawleri i jos neki "alatici" ...

misk0 02. 08. 2006. 22:34

Citat:

Originalno napisao Ivan
Da, ovako su radili neki e-mail crawleri i jos neki "alatici" ...

Da, klasicna Vrfy komanda mail servera. Kad sam zadnji put provjeravao, radila je, ali to je bilo '99e :)

marinowski 02. 08. 2006. 23:21

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.

srdjevic 02. 08. 2006. 23:26

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. ;-)

dee 02. 08. 2006. 23:57

@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!


Vreme je GMT +2. Trenutno vreme je 11:29.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.