Есть ли способ проверить в PHP, является ли электронная почта активной или нет? - PullRequest
3 голосов
/ 16 сентября 2011

Есть ли способ проверить (через PHP), что какой-либо адрес электронной почты активен (означает, что он в настоящее время используется и открыт кем-либо) или нет (означает, что он заблокирован или никто не использует / открывает его, он неактивен) )?
С уважением и заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 16 сентября 2011

Есть ли способ проверить (через PHP), является ли данный адрес электронной почты активным (означает, что он в данный момент используется и открыт кем-либо) или нет (означает, что он заблокирован или никто не использует / открывает егонеактивна)?

Нет.

Единственный способ убедиться в этом - это отправить электронное письмо по адресу, не получить сообщение об отказе и получить какой-либо ответ (например, ответ, или пользователь щелкнет по уникальной ссылке вЭлектронная почта, или изображение с открываемым уникальным URL-адресом (хотя это неодобрительно и блокируется многими почтовыми клиентами), или квитанция о прочтении).Тем не менее, ни один из этих методов не является надежным, поэтому вы не можете сказать на 100% уверенно.

2 голосов
/ 16 сентября 2011

Я думаю, что вы спрашиваете, является ли введенный пользователем адрес электронной почты действительным или нет !! если это так, то вы должны использовать nslookup для операционной системы на основе Unix с помощью exec. Вот небольшая функция для этого: (я проверяю, правильно ли домен) или нет

function myCheckDNSRR($email)
{
      list($userName, $hostName) = split("@", $email); 
$recType = '';
if(!empty($hostName)) {
   if( $recType == '' ) $recType = "MX";

   exec("nslookup -type=$recType $hostName", $result);
   // check each line to find the one that starts with the host
   // name. If it exists then the function succeeded.

   foreach ($result as $line) {
     if(eregi("^$hostName",$line)) {
       return true;
     }
   }
   // otherwise there was no mail handler for the domain
   return false;
}
return false;

}

0 голосов
/ 16 сентября 2011

Вы можете использовать API для внешнего сервиса

Существует несколько API для проверки электронной почты, data8 получил один. http://www.data -8.co.uk / integr8 / услуги / email_validation.aspx

Вот образец

function IsValid($email, $level)
{
  $params = array(
    "username" => "your-username",
    "password" => "your-password",
    "email" => $email,
    "level" => $level,
    "options" => $options
  );
  $client = new SoapClient("http://webservices.data-8.co.uk/EmailValidation.asmx?WSDL");
  $result = $client->IsValid($params);
  if ($result->IsValidResult->Status->Success == 0)
  {
    echo "Error: " . $result->IsValidResult->Status->ErrorMessage;
  }
  else
  {
    // TODO: Process method results here.
    // Results can be extracted from the following fields:
    // $result->IsValidResult->Result
    //   Contains a status code indicating if the email address could be validated.
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...