Jak sprawdzić czy adres jest prawdziwy?
Nie pytam o składnie tylko o to czy faktycznie istnieje.
Jest na to jakiś skrypt?
Jak sprawdzić czy adres jest prawdziwy?
Nie pytam o składnie tylko o to czy faktycznie istnieje.
Jest na to jakiś skrypt?
wg mnie najlepiej sprawdzić go na podstawie wyrażeń regularnych
poniżej funkcja w php, która sprawdza poprawność wpisanego adresu email
function poprawny_email( $email ) {
if ( !eregi( '^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-\.]+\.[a-zA-Z0-9\-]+$', $email ) ) {
return false ;
}
return true ;
}
Przecież napisałem że nie chodzi o składnie a o to czy on istnieje!
składnie to ja potrafie sprawdzić, tylko to informuje o tym czy adres wygląda na poprawny a nie o tym czy jest prawdziwy.
jak dam wrednymail@gmail.com to on przejdziedzie taki test, choć faktycznie taki adres nie istnieje.
więc jest jakiś sposób na sprawdzenie istnienia adresu?
http://articles.sitepoint.com/article/u … ddress-php
http://php.net/manual/en/function.checkdnsrr.php
może coś pomoże
Może nie. Tę metode sprawdziłem jeszcze zanim zadałem tutaj pytanie.
checkdnsrr można chyba tylko sprawdzić domenę, a ja dalej nie wiem czy adres istnieje bo to co przed @ może być zmyślone
Musisz z php połączyć sie z SMTP i zapytać, coś ala:
$smtp_server = fsockopen("mail.serwer.pl", 25, $errno, $errstr, 30);fwrite($smtp_server, "HELO hi\r\n");fwrite($smtp_server, "MAIL FROM: \r\n");fwrite($smtp_server, "RCPT TO: \r\n"); [/code]
Jak po rcpt jest ok - istnieje, a jeśli nie to zwraca błąd, doczytasz sobie...
Niektóre serwery odpowiadają na:
[code=php]"VRFY user"
ale to zależy od konfiguracji.
Tak więc 100% pewności nie masz - zależy od konfiguracji serwera
Szczegóły:
http://tools.ietf.org/html/rfc2821
I jeszcze ustaw mail po "FROM: " na prawidłowy dla (bo sprawdza IP) domeny z której się łączysz bo SPF Ci nie pozwoli dalej działać.
dziękuje, o to mi chodziło.