Forum » Izdelava spletišč » Verify e-mail v PHP
Verify e-mail v PHP
poweroff ::
Nekje sem zasledil da se menda da preveriti ali nek e-mail obstaja na serverju ali ne.
Nekako takole naj bi šlo:
Telnetaš se na mailserver, port 25, in izvedeš naslednje komande:
- HELO moj_hostname
- MAIL FROM: jst@jst.org
- RCPT TO: iskani_mailbox
Potem pa na zadnji ukaz mailserver odgovori s sporočilom o uspehu (SMTP Reply Codes), in če je ta koda enaka 250 e-mail naslov obstaja, sicer pa ne.
No, problem je naslednji - KAKO to sprogramirat?
Nekako takole naj bi šlo:
Telnetaš se na mailserver, port 25, in izvedeš naslednje komande:
- HELO moj_hostname
- MAIL FROM: jst@jst.org
- RCPT TO: iskani_mailbox
Potem pa na zadnji ukaz mailserver odgovori s sporočilom o uspehu (SMTP Reply Codes), in če je ta koda enaka 250 e-mail naslov obstaja, sicer pa ne.
No, problem je naslednji - KAKO to sprogramirat?
markz ::
zanimiva ideja...
sem malo poizkusal, samo nekateri serverji ne checkirajo, ce user res obstaja...
na arnesu recimo (upam, da me ne bojo kaj banali ali kaj podobnega) ti za vsak RCPT TO: vrne 250 Ok, ne glede na to kaj vpises... lahko celo neveljaven mail vpises...
v phpju pa bi se to verjetno dalo resit z fsockopen... nekaj v stilu (nisem probal, verjetno bi bilo kaj za popravit)
$fp = fsockopen("mail.server.com", 25, $errno, $errstr, 50);
saj je jasno, ne... server, port, error number, error string, timeout...
if (!$fp) { echo "napaka pri povezovanju"; }
else {
fputs($fp, "HELO hostname");
// lahko preberes output z fgets... lahko samo prve tri cifre,
// ki ti povejo kaj se je zgodilo...
fputs($fp, "MAIL FROM: mail@server.com");
fputs($fp, "RCPT TO: ali.obstaja@mail.com");
$code = fgets($fp, 3);
if ($code == "250") echo "mail obstaja";
else echo "napaka!";
fclose($fp);
}
booo... mogoce pa celo dela... bos probal? ;)
edino ne vem, kaksen je ukaz za prekinit povezavo... quit, exit, break, logout ne delajo... in ne vem, ce fsocopen posilja tako ciste ukaze kot telnet ali je zraven se kaj, kar bi bilo potrebno interpretirat...
sem malo poizkusal, samo nekateri serverji ne checkirajo, ce user res obstaja...
na arnesu recimo (upam, da me ne bojo kaj banali ali kaj podobnega) ti za vsak RCPT TO: vrne 250 Ok, ne glede na to kaj vpises... lahko celo neveljaven mail vpises...
v phpju pa bi se to verjetno dalo resit z fsockopen... nekaj v stilu (nisem probal, verjetno bi bilo kaj za popravit)
$fp = fsockopen("mail.server.com", 25, $errno, $errstr, 50);
saj je jasno, ne... server, port, error number, error string, timeout...
if (!$fp) { echo "napaka pri povezovanju"; }
else {
fputs($fp, "HELO hostname");
// lahko preberes output z fgets... lahko samo prve tri cifre,
// ki ti povejo kaj se je zgodilo...
fputs($fp, "MAIL FROM: mail@server.com");
fputs($fp, "RCPT TO: ali.obstaja@mail.com");
$code = fgets($fp, 3);
if ($code == "250") echo "mail obstaja";
else echo "napaka!";
fclose($fp);
}
booo... mogoce pa celo dela... bos probal? ;)
edino ne vem, kaksen je ukaz za prekinit povezavo... quit, exit, break, logout ne delajo... in ne vem, ce fsocopen posilja tako ciste ukaze kot telnet ali je zraven se kaj, kar bi bilo potrebno interpretirat...
markz ::
hehe ...
zanimiva ta funkcija fsockopen...
glej, kaj se da tudi narediti... (query whois database)
$domain = "slo-tech.com";
if (trim($domain) <> "") {
$domain = trim($domain);
$fp = fsockopen("whois.networksolutions.com", 43, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)";
} else {
fputs($fp, "$domainrn");
while (!feof($fp)) {
echo fread($fp,128);
}
fclose ($fp);
}
}
zanimiva ta funkcija fsockopen...
glej, kaj se da tudi narediti... (query whois database)
$domain = "slo-tech.com";
if (trim($domain) <> "") {
$domain = trim($domain);
$fp = fsockopen("whois.networksolutions.com", 43, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)";
} else {
fputs($fp, "$domainrn");
while (!feof($fp)) {
echo fread($fp,128);
}
fclose ($fp);
}
}
Zgodovina sprememb…
- spremenilo: markz ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | PHP mail(); probem.Oddelek: Izdelava spletišč | 1792 (1213) | Skrat |
» | Vote script(php)-problem?Oddelek: Izdelava spletišč | 945 (901) | AlexUS |
» | php mail()Oddelek: Izdelava spletišč | 1054 (972) | alum |
» | Problem z formo in POSTOddelek: Izdelava spletišč | 1557 (905) | Brilko |
» | SMS in PHPOddelek: Programiranje | 1539 (1298) | rokpok |