Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class CCheckMail
- {
- var $timeout = 10;
- var $domain_rules = array ("aol.com", "bigfoot.com", "brain.net.pk", "breathemail.net",
- "compuserve.com", "dialnet.co.uk", "glocksoft.com", "home.com",
- "msn.com", "rocketmail.com", "uu.net", "yahoo.com", "yahoo.de");
- function _is_valid_email ($email = "")
- { return preg_match('/^[.\w-]+@([\w-]+\.)+[a-zA-Z]{2,6}$/', $email); }
- function _check_domain_rules ($domain = "")
- { return in_array (strtolower ($domain), $this->domain_rules); }
- function execute ($email = ""){
- if (!$this->_is_valid_email ($email)) return false;
- $host = substr (strstr ($email, '@'), 1);
- if ($this->_check_domain_rules ($host)) return false;
- $host .= ".";
- if (getmxrr ($host, $mxhosts[0], $mxhosts[1]) == true) array_multisort ($mxhosts[1], $mxhosts[0]);
- else { $mxhosts[0] = $host;
- $mxhosts[1] = 10;
- }
- $port = 25;
- $localhost = $_SERVER['HTTP_HOST'];
- $sender = 'info@' . $localhost;
- $result = false;
- $id = 0;
- while (!$result && $id < count ($mxhosts[0]))
- { if (function_exists ("fsockopen"))
- {
- if ($connection = fsockopen ($mxhosts[0][$id], $port, $errno, $error, $this->timeout))
- {
- fputs ($connection,"HELO $localhost\r\n");
- $data = fgets ($connection,1024);
- $response = substr ($data,0,1);
- if ($response == '2')
- {
- fputs ($connection,"MAIL FROM:<$sender>\r\n");
- $data = fgets($connection,1024);
- $response = substr ($data,0,1);
- if ($response == '2')
- {
- fputs ($connection,"RCPT TO:<$email>\r\n");
- $data = fgets($connection,1024);
- $response = substr ($data,0,1);
- if ($response == '2')
- {
- fputs ($connection,"data\r\n");
- $data = fgets($connection,1024);
- $response = substr ($data,0,1);
- if ($response == '2')
- { $result = true; }
- }
- }
- }
- fputs ($connection,"QUIT\r\n");
- fclose ($connection);
- if ($result) return true;
- }
- }
- else break;
- $id++;
- }
- return false;
- }
- }
- $str='test@gmail.com';
- $alter=new CCheckMail();
- print "E-mail: ".$str." - ".($alter->execute($str)?'существует':'не существует');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement